位置: 编程技术 - 正文

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

  • 税务ukey与税控盘的区别
  • 建筑业项目在外地在哪里交增值税
  • 离职补偿的扣税比例
  • 纳税人未抄报税是什么意思
  • 离职员工个税申报时员工状态依然是雇员
  • 外出经营涉税事项报告
  • 国外酒店打印的住宿单可以入账吗
  • 会计凭证辅助项
  • 印花税自查补缴要先申报吗
  • 个体工商户每月需要申报个税吗
  • 财产保险合同印花税谁交
  • 购买润滑油分录
  • 纳税人发生纳税义务,未按照规定
  • 研发加计扣除的标准
  • 管道租赁合同怎么写
  • 水利基金的计税依据是含税收入还是不含税收入
  • 销售商品会计凭证
  • 业务招待费可以结转下年抵扣吗
  • 一般纳税人增值税怎么做账务处理
  • 怎么修改财务负责人信息
  • 制造费用包括劳动保护费吗
  • 外地预缴工会其他经费计入什么科目?
  • 税务申报系统叫什么
  • 月末增值税进项和销项怎么结转
  • 娱乐行业缴税
  • 成本和费用属于资产吗
  • windows 10纯净版
  • 税收是财政政策传导机制中重要的媒介之一
  • 债务重组账务处理会计分录
  • bootcamp怎么直接安装
  • vue jsx报错
  • 工程事故赔偿协议书怎么写
  • 外企借款投资利息高吗
  • 未签订租赁合同租金如何确定
  • 减免增值税会计处理
  • 企业所得税季度预缴是什么意思
  • vue初始化命令
  • phpweb漏洞
  • 劳动法中迟到半小时扣多少钱
  • 销售边角料的会计分录
  • 其他权益工具确认投资损失的账务处理
  • 财政零余额账户存款
  • 属于长期险种的是
  • phpcms建站流程
  • 小规模纳税人网上报税
  • 公司自有房产出租给员工如何处理
  • 金税四期什么时候全国运行
  • 企业的所得税税率怎么计算
  • 退回企业所得税的账务处理
  • 记账凭证粘贴顺序银行回单
  • 创业带动就业补贴是给企业的还是员工的
  • 开发成本计入现金流量表
  • 银行业务冲正
  • 不征税发票和零税率发票
  • mysql 5.7.13 winx64安装配置方法图文教程
  • sql复制表的语句
  • drop table select
  • 组策略win7
  • avgorange是什么文件夹
  • winmysqladmin.exe - winmysqladmin进程是什么意思
  • windows注销登录会怎样
  • mac如何打开程序菜单
  • win8系统咋样
  • win10 无线热点
  • WIN10系统怎么改成泰语
  • win10开启暗黑模式
  • windows 10 build 21354
  • Unity3D游戏开发标准教程
  • nodejs使用es6
  • python的异常处理语句
  • JavaScript中Date.toSource()方法的使用教程
  • javascript给表单赋值
  • js怎么学扎实
  • 用javascript
  • 2006年发生哪一些大案
  • 网上如何申领电瓶车牌照
  • 音箱海关税
  • 版权登记条件
  • 土地增值税核定征收尾盘销售
  • 国税官网登录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设