【发布时间】:2011-07-18 11:02:47
【问题描述】:
我想使用 AsyncTask 将图像加载到 ListView。
private class LoadImageTask extends AsyncTask<HashMap<String,Bitmap>,Void,Bitmap>{
@SuppressWarnings("unchecked")
@Override
protected void onPostExecute(Bitmap result) {
if(model.getIconCache().get(cellIcon)!=null){
icon.setImageBitmap(model.getIconCache().get(cellIcon));
}else{
new LoadImageTask().execute(model.getIconCache());
}
}
@Override
protected Bitmap doInBackground(HashMap<String, Bitmap>... params) {
//return model.getIconCache().get(cellIcon);
return null;
}
}
好的,我知道这不是情感代码。然而它运作良好,但有很多内存分配。在阅读有关 AsyncTask 的文档时,它说 Asynctask 只能从 UI 线程调用,它怎么能让它在自身内部使用?当然,我想让我的代码在单个 AsyncTask 中工作。代码中的“模型”是在运行时通过另一个线程更新的对象。所以我需要找到一种方法来使用单个 Asynctask 并定期控制对象的状态。我怎么做?谢谢
【问题讨论】:
标签: android multithreading listview asynchronous android-asynctask