位置: 编程技术 - 正文

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

  • 广播影视服务税率2023
  • 民办学校房屋要求
  • 增票未抵扣丢失怎么处理
  • 农行公户怎么给公户转账
  • 私人口腔诊所会感染艾滋病吗
  • 合伙企业分配利润需要全体合伙人同意吗
  • 房地产企业交纳所得税吗
  • 留存收益总额不变
  • 资产负债表的应付职工薪酬怎么填
  • 检测样品留样期限
  • 融资租赁的服务费的标准
  • 福利费可以抵扣个税吗
  • 企业买茶叶如何账务处理
  • 备品的定义
  • 滞留票是什么意思
  • 普票冲红需要收回全部联次吗
  • 为什么查询发票显示查无此票
  • 代扣代缴增值税纳税义务发生时间
  • 会计怎么避免坐牢
  • 电子税务局社保申报截止日期每月
  • 采购均价怎么计算
  • 购进的样品入账科目
  • 个税7月申报7月怎么填
  • 注册公司需要注册资金吗
  • 电脑开机后无显示,但主机电源指示灯长亮
  • 支付水费现金流量
  • 计划成本法存货成本的确定
  • 企业会计制度政府补助
  • 索尼vpcea200c笔记本
  • 有形动产融资租赁税率是多少
  • win7电脑开启麦克风权限设置
  • 转租收入是否缴纳房产税江苏
  • phpscanf
  • php yield 异步
  • 对税务总局意见建议
  • php激活码永久
  • 交通运输企业会议记录
  • 持有至到期投资科目被取消了吗
  • 有限责任公司股东向股东以外的人转让股权
  • 永续债进什么科目
  • 光下的村庄环境描写
  • php网页编程
  • 股权投资企业收益怎么算
  • 所得税季报本月数是指
  • 测试费计入什么会计科目
  • 文件上传漏洞原因
  • video.js教程
  • 融资租赁业务的程序主要有
  • 印花税调低
  • 个人综合所得汇算申报流程
  • SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用方法
  • 处置固定资产净收益属于利得吗
  • 个体工商户需要给员工交社保吗
  • 设备维修费可以抵扣进项税吗
  • 转让股权需要缴纳哪些税
  • 所得税汇算清缴前取得跨年发票
  • 间接持股比例如何分析
  • 弱电系统可以入户门吗
  • sql server自动生成语句
  • win10补丁导致无法开机
  • windowsxp能用pr吗
  • windows优化软件
  • hppusg.exe
  • linux输出结果
  • linux 命令详解
  • windows越狱软件
  • 如何在ubuntu上安装软件
  • centos7安装软件包命令
  • ipcservice.dll是什么?
  • html复选框和单选框区别在哪
  • 用python学算法
  • Base64、DES、MD5加密解密原理
  • android 加载更多
  • 常用python编程软件
  • unity3d怎么让物体依次运动
  • python3.9快捷键
  • 电子税务局驱动安装步骤
  • 如何打印个税缴纳记录
  • 硅矿的合法开采方法
  • 古代怎样征兵
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设