位置: 编程技术 - 正文

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

  • 一般纳税人开普票税率是3%还是13%
  • 计提税费如何写分录
  • 环境保护税是什么科目
  • 个体户没做过账怎么办
  • 小规模纳税人普票交税吗
  • 两免三减半的范围
  • 联营企业股利收入
  • 土地增值税预缴最新税法规定
  • 土地股权转让需交什么税
  • 库存现金余额过大的定性
  • 燃油税里面包含哪些内容
  • 私车公用产生的过路费怎么开发票
  • 增值税专用发票抵扣期限
  • 出口退税代理费用大概多少
  • 软件企业两免三减半税收政策到期
  • 作为职工福利费取得的专用发票不能抵扣吗
  • 挂名财务负责人会坐牢吗
  • 纳税单位与免税单位共用的房屋由纳税单位全额纳税
  • 处置股权后相应债权坏账损失怎么处理?
  • 固定资产报废鉴定意见
  • 使用本地账户登录什么意思
  • 减免增值税计入什么科目
  • mac连不上wifi怎么回事 其他设备却可以
  • win10播放视频软件
  • 苹果客服人工24小时
  • pop是什么文件
  • 公司收入可以打折吗
  • 路由器晚上关了,早上再开信号会好吗?
  • php pulsar
  • 销售方收到购买方的红字信息表
  • 收到银行汇票怎么背书
  • php获取网站内容
  • 海恩斯科普简介
  • 支付水电费增值税账务处理
  • 公司外部人员的差旅费入什么科目
  • 广告费列支
  • 筹建期间借款费用
  • 公司支付工伤赔偿,是先签字还是先打钱
  • 统计 α
  • 固定资产转卖会亏本吗
  • html+css+js网页设计期末作业付源码
  • 卷积神经网络课程
  • 电子银行回单可以导出吗
  • 完整财务报表包括哪几类
  • 技术转让免征增值税需要备案吗
  • 应纳税所得额中国债利息收入
  • 发票报销有时间期限吗
  • 上月未结账本月不能结账
  • 负商誉的分录
  • 实收资本为0可以运作吗?
  • 个税里的年金是指
  • 小规模纳税人增值税计算公式
  • 什么叫做进项税不得抵扣
  • 什么是债券转让价格与发行价格
  • 企业内在
  • 怎样计算债券利息
  • mysql的子查询语句
  • win xp 添加网络打印机
  • windows vista秘钥
  • win10预览版选哪个
  • SymSPort.exe - SymSPort是什么进程 有何作用
  • 盗版win10可以用win10商店吗
  • linux怎么恢复数据
  • mplugin.exe是什么
  • win1020h2正式版下载
  • 使用自带DISM工具修复Windows8.1映像
  • WIN7系统还原
  • ie等级
  • 如何自定义控件
  • 如何给图像应用css滤镜处理效果
  • Node.js中的全局变量有哪些
  • ajax成功不走success
  • javascript document.execCommand() 常用解析
  • JavaScript中的数据类型分为两大类
  • android反编译软件
  • python for循环删除元素
  • 税票上的开票员是谁
  • 河南省医保卡中心电话
  • 百旺金赋天津客服
  • 企业内部清欠的措施和做法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设