Android:“不允许从非ui线程更新UI”是什么意思?

时间:2013-12-10 08:19:01

标签: android ui-thread

这有效:

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

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

很抱歉,我认为如果我问“为什么img.setImageBitmap(bitmap)已经在UI线程上运行,我的问题应该更准确。我认为它是在AsyncTask线程中更新UI中的View。

1 个答案:

答案 0 :(得分:1)

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

因为您是在AsyncTask的onPostExecute()方法中编写的。在AsyncTask中,onPreExecute()onPostExecute()等方法始终在主UI线程上运行,而只有doInBackground()在单独的线程上运行...