Android: что означает "не разрешено обновлять пользовательский интерфейс из не-пользовательского потока"?

Это работает:

private class MyAsyncTask extends AsyncTask<....>{

    protected void onPostExecute(){
        // img is an ImageView
        img.setImageBitmap(bitmap);
    }
}

Извините, ребята, я думаю, что мой вопрос должен быть более точным, если я спрашиваю "почему img.setImageBitmap(bitmap) уже запущен в потоке пользовательского интерфейса. Я думал, что это обновление View в пользовательском интерфейсе из AsyncTask нить.

1 ответ

Решение
 why img.setImageBitmap(bitmap) is already run on UI thread

Потому что вы написали это в onPostExecute() метод AsyncTask. В AsyncTask, методы, такие как onPreExecute() а также onPostExecute() всегда выполняется в вашем основном потоке пользовательского интерфейса, в то время как только doInBackground() работает в отдельном потоке...

Другие вопросы по тегам