位置: 编程技术 - 正文

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个)

  • 补提企业所得税怎么做账
  • 证券交易计税依据
  • 借款利息收入要开票吗
  • 驾驶员行车补贴开什么发票
  • 没有购置税发票有影响吗
  • 大票可以直接更名吗
  • 进项大于销项的会计分录怎么做?
  • 个人厂房租赁税率是多少
  • 建筑 设计 招聘
  • 申请补贴费用怎么写
  • 外商投资企业所得税法第八条
  • 公司付给职工的工资
  • 住宅租给公司需要注意什么
  • 企业所得税减免优惠政策
  • 跨月红字发票可以作废吗
  • 所得税费用是在哪个科目
  • 滞纳金是否有上限
  • 金税盘怎么增加复核人
  • 房地产企业什么时候交企业所得税
  • 在建工程计提减值准备可以转回吗
  • 法定盈余公积是留存收益吗
  • 收回公司代垫职工款项怎么做凭证?
  • 商业承兑汇票承兑人可以是银行吗
  • 结转已经销售商品成本的分录
  • windows11正式版好用吗
  • 企业车辆按揭的利弊分析
  • 公司帮员工代缴社保有风险吗
  • 内部员工租房租金合法吗
  • 全年一次性奖金计税方式
  • 可变现净值高于成本计入当期损益吗
  • 出售固定资产净收益影响营业利润吗
  • 电影剧本如何代替
  • php格式转换
  • 为什么法律不允许安乐死
  • 公司租房子 房东让我们代缴税
  • php动态变量
  • vue3使用高德地图
  • canvas软件教程
  • 周末闲暇时光是什么意思
  • redisson php
  • 溢价发行股票相关手续费计入
  • 建筑安装包清工税率多少
  • ps怎么抠的干净
  • 织梦添加文章如何修改高级参数
  • 查询不到shsh怎么回事
  • sqlserver避免死锁
  • 无票收入增值税怎么申报
  • 本月冲红上月发票后的税款能抵减吗
  • 银行汇票的会计处理过程分为什么阶段
  • 哪些进项发票不能认证
  • 应交税金在贷方是什么意思
  • 个税手续费返还政策文件
  • 公司办公室租金
  • 没有入账的固定资产怎样做账
  • 银行回单自助打印可以打多久的记录
  • 累计折旧怎么算出来
  • 中小企业会计建议和意见
  • mac怎么打开terminal
  • ubuntu文本编辑器怎么打开
  • 苹果mac怎么复制文字
  • xp系统个性化
  • 获取windows的最新信息
  • ubuntu 上不了网
  • win7 c盘莫名其妙满了
  • 访问win10
  • shell脚本入门详解
  • linux lvm配置
  • js模块化和组件化
  • dos help命令
  • jquery对动态生成的进行操作
  • android开发范例实战宝典
  • 对象类型怎么填
  • android存储方式
  • 国家河北税务局官网
  • 广州电子税务局官网登录入口网址
  • 企业的绿化用地暂免征收土地使用税
  • 增值税计税依据含运费吗
  • 绿牌电动车需要过户吗?
  • 河北省税务局地址邮编
  • 大走访 方案
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设