2013-12-10 3 views
-1

Это работает:Android: что означает «не разрешено обновлять пользовательский интерфейс из нити»?

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

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

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

+0

Вы используете как в onPost? – Manishika

+0

@ Manishika yes Я обновил свой вопрос – nomnom

+1

@nomnom показать полный код не нужно использовать runOnUithread, который он уже вызывается по ui thread – Raghunandan

ответ

1
why img.setImageBitmap(bitmap) is already run on UI thread 

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

+0

Я пробовал, это правда, спасибо большое;) – nomnom

Смежные вопросы