我正在从 facebook 搜索一些页面,然后下载他们的图片。我想在我的列表中立即查看它们,并在每次下载新图片时更新适配器。我在另一个活动中使用相同的方法并且它有效,但在这里我使用一个对话框,它冻结我的 UI 直到一切都完成,即使我在后台执行它。为什么?
private synchronized void getUserLikesImages() {AsyncTask<Void, Void, Bitmap> task = new AsyncTask<Void, Void, Bitmap>() {
@Override
public Bitmap doInBackground(Void... params) {
for(...){
//download one picture...
FacebookeventsActivity.this.runOnUiThread(new Runnable() {
public void run() {
pagesILikeArrayAdapter.notifyDataSetChanged();
}
});
}
};
task.execute();
}
它可以工作,但是 UI 一直冻结到操作结束...我认为这可能是因为我的列表在一个对话框中并且我在 UIThread 上运行它,但我不知道如何修复它。