位置: 编程技术 - 正文

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

  • 差旅费津贴怎么报税
  • 安全生产费计提没用可以冲吗
  • 外经证核销反馈表
  • 发票抬头写错了还能改吗
  • 解除劳动合同员工不同意
  • 邀请境外机构提出申请
  • 票据遗失可以采取哪些补救措施
  • 供应商发出货物,将发货单提交给
  • 应收账款进行债务转让
  • 增值税发票抵扣进项税什么意思
  • 企业安全生产费用提取标准 最新
  • 小规模纳税人怎么判断
  • 合同印花税进哪个科目
  • 商贸企业加工费票计入什么科目
  • 广告公司广告费会计分录
  • 免税收入的财税处理
  • 一般纳税人所得税优惠政策
  • 固定资产对外投资增值税
  • 作废已开具的普通发票
  • 进口商品买卖的关键环节
  • 离退休人员福利
  • 增值税附加税怎么计提
  • 预付卡充值赠送的金额确认收入
  • 免征增值税的税额还要交个人所得税吗
  • 公司控股的公司下子公司有哪些
  • 公司买别人汇票有风险吗
  • cpu游戏性能天梯图2023
  • 保险费做什么会计分录
  • 金税盘减免税款怎么结转
  • 收到服务费的发票怎么做
  • 经营租入的设备能够确认为资产吗
  • 贷款房屋评估费怎么收
  • icqlite.exe进程的详细介绍 icqlite进程的查询 作用是什么
  • 小规模纳税人需要缴纳个人所得税吗
  • 劳务派遣增值税差额征税
  • php精彩编程200例
  • 增值税进项税转出文件
  • php23种设计模式
  • 事业单位资产管理中存在的问题及整改措施
  • php数据统计分析
  • 非征期不能抄报
  • 毕业论文笔记怎么写
  • ip6tables-restore命令 还原ip6tables表
  • javascrapt
  • 固定资产多少金额才算
  • 劳务分包的形式有哪些
  • 股票分红个人所得税
  • 帝国cms商城教程
  • mysqldump -r
  • 消费税为什么要除以1减税率推导公式
  • 稿费的个税是怎么算的
  • sqlserver有实例吗
  • 股权收购被收购方怎么做账
  • 增值税进项税销项税月末需要结转吗
  • 实业投资收益如何
  • 老板从公司借款怎么处理
  • 付款申请单如何生成凭证
  • 离线发票累计金额是多少
  • 公司增资怎么处理
  • 小企业会计准则主要按照什么计量
  • 会计结账的作用
  • 会计凭证的主要种类
  • sql实现分页查询语句
  • Win7 64位系统声卡重装过程中出现失败的解决方法
  • win7任务管理器快捷键ctrl+alt+
  • sxs.exe病毒
  • 如何在mac中安装windows
  • 在linux中使用ssh远程调试后目标板的输出在哪里
  • win7没有nvidia控制面板怎么调节亮度
  • [OpenGL ES 04]3D变换实践篇:平移,旋转,缩放
  • perl cgi
  • python将字典转换成字符串
  • 新浪微博模仿推特
  • android反编译软件
  • 山东省国税地税体制改革
  • 非房地产企业土地增值税
  • 组织生活会有民族评议党员大会会后报告
  • 外汇管理数字外管平台怎么登录
  • 地税是什么税种
  • 长沙房产税如何征收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设