位置: 编程技术 - 正文

AsyncTask的缺陷和问题(asynctask缺点)

编辑:rootadmin

推荐整理分享AsyncTask的缺陷和问题(asynctask缺点),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:asyncio queue,asynctask和handler,asyncio queue,android asynctask优缺点,async await缺点,async await缺点,async.queue,async await缺点,内容如对您有帮助,希望把文章链接给更多的朋友!

在Android开发中,AsyncTask可以使得用户避免直接使用Thread类和Handler 来处理后台操作,适用于需要异步处理数据并将数据更新到界面上的情况。AsyncTask适用于后台操作只有几秒的短时操作。但是AsyncTask本身存在很多糟糕的问题,如果使用中不注意,将会影响程序的健壮性。

1、生命周期

很多开发者会认为一个在Activity中创建的AsyncTask会随着Activity的销毁而销毁。然而事实并非如此。AsyncTask会一直执行, 直到doInBackground()方法执行完毕。然后,如果 cancel(boolean)被调用, 那么onCancelled(Result result) 方法会被执行;否则,执行onPostExecute(Result result) 方法。如果我们的Activity销毁之前,没有取消 AsyncTask,这有可能让我们的AsyncTask崩溃(crash)。因为它想要处理的view已经不存在了。所以,我们总是必须确保在销毁活动之前取消任务。总之,我们使用AsyncTask需要确保AsyncTask正确地取消。

另外,即使我们正确地调用了cancle() 也未必能真正地取消任务。因为如果在doInBackgroud里有一个不可中断的操作,比如BitmapFactory.decodeStream(),那么这个操作会继续下去。

AsyncTask的缺陷和问题(asynctask缺点)

2、内存泄漏

如果AsyncTask被声明为Activity的非静态的内部类,那么AsyncTask会保留一个对创建了AsyncTask的Activity的引用。如果Activity已经被销毁,AsyncTask的后台线程还在执行,它将继续在内存里保留这个引用,导致Activity无法被回收,引起内存泄露。

3、结果丢失

屏幕旋转或Activity在后台被系统杀掉等情况会导致Activity的重新创建,之前运行的AsyncTask会持有一个之前Activity的引用,这个引用已经无效,这时调用onPostExecute()再去更新界面将不再生效。

4、并行还是串行

在Android 1.6之前的版本,AsyncTask是串行的,在1.6至2.3的版本,改成了并行的。在2.3之后的版本又做了修改,可以支持并行和串行,当想要串行执行时,直接执行execute()方法,如果需要并行执行,则要执行executeOnExecutor(Executor)。

You need to use a Theme.AppCompat theme (or descendant) with this activity 问题现象:只要添加android:theme=@android:style/Theme.Black.NoTitleBar,APP就会闪退。错误log:java.lang.RuntimeException:UnabletostartactivityComponentInfo{com.example.test2/com.examp

Android性能优化(四)——代码优化工具Lint 一直在想,如果Android中有这样一种工具该多好:可以直接检查出代码中的问题,我可以根据检查出的问题来进行针对性的修改,果然Google后发现,有这

Android之监听手机软键盘弹起与关闭 背景:在很多App开发过程中需要在Activity中监听Android设备的软键盘弹起与关闭,但是Android乎没有提供相关的的监听API给我们来调用,本文提供了一个可

标签: asynctask缺点

本文链接地址:https://www.jiuchutong.com/biancheng/383233.html 转载请保留说明!

上一篇:Android 实现智能机器人聊天(安卓智能设备指什么)

下一篇:Android性能优化(四)——代码优化工具Lint(Android性能优化的方面12个)

  • 收到以前年度退回的所得税
  • 将房产以股权形式出售
  • 火车票丢了怎么补打报销凭证
  • 8月现金收入9月存银行如何做账
  • 借款给别的公司收到的利息会计分录怎么写
  • 事业单位下属企业员工转事业编
  • 接受捐赠计入什么费用
  • 收到捐赠货物的会计分录怎么写
  • 企业呆账的处理方式
  • 3%减按2%征收是哪个税目
  • 没签合同怎么交社保
  • 没有外管证就开具了发票
  • 电商无发票成本怎么做账
  • 如何填制记账凭证总结
  • 各地土地使用税区域差距大
  • 进项发票没有收到,销项已开出,成本如何结转
  • 新开的公司会计需要做什么
  • 公司发的物品叫什么
  • 小规模纳税人金融服务税率
  • 股权转让的分录怎么做
  • 关于获得政府补助的公告
  • 电商运费怎么做账
  • 对方开红票需要寄给我吗
  • php 生成opcode
  • 公司账户转账到出纳个人账户
  • 税前扣除是好事吗
  • 从价计征房产税如何计算
  • 报销差旅费会计凭证
  • 混合销售行为的税务处理
  • 井冈山游击队的口号
  • jquery和php
  • thinkphp框架介绍
  • php连接数据库的基本步骤是什么
  • 委托开发和购买开发
  • 个税申报结果查询
  • 逐帧flash动画
  • 注销对公账户要去原支行吗
  • 如何填写个人所得税申报表
  • 进项加计抵减会计分录怎么做
  • 公对公账号没有卡能取得出来钱吗
  • wordpress配置数据库
  • mysql索引原理及慢查询优化
  • PHP MongoDB GridFS 存储文件的方法详解
  • 深入了解工作优势怎么回答
  • 收到法院款项如何做账
  • 小规模纳税人工资薪金怎么申报
  • 什么叫做印花??
  • sql server 数据库技术
  • 预提费用增加在借方还是贷方
  • 对方给我们等额的钱
  • 一般纳税人应如何报税
  • 出口货物备案单证目录怎么填
  • 营业税金及附加是什么科目
  • 职工食堂费列入哪里
  • 未开票收入怎么申报增值税
  • 去年亏损今年盈利同比怎么算
  • 建筑业预缴税款怎么退税
  • 写字楼物业费按照什么面积
  • 一般户可以发工资有什么后果
  • 赡养老人扣除标准个税
  • 会计账簿的装订绳子
  • 一个真正的企业应该具备哪些特征
  • windows10 硬件
  • pe下修改windows下的盘符
  • Win7系统打开设备和打印机里面什么都没有
  • linux程序死机
  • win8怎么关闭管理员用户
  • windows10 14393版本
  • windows8截图保存在哪里
  • css制作动画
  • js获取浏览器当前访问的ip
  • jquery easyui插件
  • 友盟的功能
  • jquery导航菜单
  • jquery的checkbox,radio,select等方法小结
  • unity ulua
  • 房产税从价计征税率
  • 北京税务网上营业厅官网
  • 湖南电子税务局网上办税大厅
  • 申报地税的流程图
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设