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的风险,因此,我们需要根据自己的需求自定义不同的线程池,由于篇幅问题,将留到下篇再讲。

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Android 完全退出程序
  • 原创:Android应用开发-Andorid歌词秀,含源码
  • android 屏幕保护
  • Android手机软件汉化教程---第四课 dex文件汉化
  • 众多Android 开源项目推荐,给力工作给力学习
  • Android Audio代码分析4
  • Android得到已安装的应用程序信息!
  • Android开发者指南(29) —— USB Host and Accessory
  • Android成长的幕后推手:工程师鲁宾
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1