AsyncTask导致FC研究(6)
来源:未知 责任编辑:责任编辑 发表时间:2015-01-01 13:14 点击:次
protected void onPostExecute (Void result) {
mAdapter.notifyDataSetChanged();//通知ui界面更新
dismissDialog(DIALOG_PROGRESS);//关闭等待对话框
}
}
class GetItemImageTask extends FifoAsyncTask<Void, Void, Void> {
int pos;
GetItemImageTask(int pos) {
this.pos = pos;
}
@Override
protected Void doInBackground(Void... params) {
try {
Thread.sleep(2000); //模拟耗时的网络操作
} catch (InterruptedException e) {
e.printStackTrace();
}
mData.get(pos).put("pic", R.drawable.icon);
return null;
}
protected void onPostExecute (Void result) {
mAdapter.notifyDataSetChanged();//通知ui界面更新
}
}
}
由运行图可见
当网络情况较差,异步任务不能尽快完成执行的情况下,新开的线程会造成listview滑动不流畅。当开启的工作线程过多时,还有出现FC的可能。
至此,你还相信万能的AsyncTask吗?至于你信不信,反正我不信。
总结:
AsyncTask可能存在新开大量线程消耗系统资源和导致应用FC的风险,因此,我们需要根据自己的需求自定义不同的线程池,由于篇幅问题,将留到下篇再讲。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>