位置: 编程技术 - 正文

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

  • 计提税金是什么会计科目
  • 个人所得税申报退税多久到账
  • 资产计提折旧的科目
  • 个人代开普票需要交个人所得税吗
  • 怎么知道对方的支付宝账号
  • 年报中资产总额和所有者权益都填0
  • 建筑企业异地预缴增值税计算
  • 消费税的应纳税额的计算
  • 项目清算组
  • 非公益捐赠如何调整应纳税所得额?
  • 招待客人的场景图
  • 公司购买6个月的保险
  • 存货在财务报表中存在的财务操纵
  • 高速公路的发票怎么补
  • 代理进出口公司结售汇
  • 一次性离职补偿个税
  • 已缴契税是否可以在土地增值税扣除?
  • 劳务派遣差额征税税率是多少
  • 公司房产税如何计算器
  • 一般纳税人能开3个点的专票吗
  • 个税合理避税的意义
  • 研发废料收入实务中如何冲减研发费用?
  • 废品损失科目月末
  • 个人所得税免税收入怎么填纳税申报表
  • 房地产企业的非流动资产周转率在多少以上
  • 财政收据可以抵税吗
  • 拍卖物品的流程
  • 过路费企业所得税汇算清缴计入什么科目?
  • 在window系统中哪些用户可以查看日志
  • 微软系统管理员账号
  • 弥补亏损企业类型都是一般企业吗
  • PHP:mb_ereg_search_pos()的用法_mbstring函数
  • 文字转换表格怎么设置行列
  • 开出发票单位收到款项如何平账?
  • 手机怎么设置无信号
  • 委托开发软件如何入账
  • 免抵退税如何申报增值税
  • 企业债权人进行财务分析的根本目的是关心企业的
  • 小规模纳税人广告费是什么票据类型的
  • 资产处置损益计算公式
  • 三维重建是啥意思
  • 【机器学习】支持向量回归
  • source命令怎么用
  • 个人所得税换了电脑后,重新录入,离职的人也要录入吗
  • 账面未分配利润等于净利润?
  • 增值税附加税有哪几种
  • 公司代买社保怎么收费
  • 防火门是属于固定材料吗
  • 纳税人申报的方法有哪些
  • 保税区商品可以开发票吗
  • 未开票收入申报有税务风险吗
  • 预收货款方式销售货物,纳税义务发生时间
  • 捐赠 税收
  • 付款金额与增值金额区别
  • 一般纳税人资格证书怎么查询
  • 房地产企业预缴土地增值税
  • 招待客户住宿属于什么费用
  • 客户付了订金后能退吗
  • 无形资产减值准备借贷
  • 政府补助的内容
  • 会计每月账务处理流程
  • 销售已经使用过的固定资产税率
  • 物业服务企业管理
  • win7如何访问xp
  • xp创建VPN连接图文教程
  • Win10 Mobile RS2预览版14904升级截图曝光
  • win10系统宽带连接错误解决方法
  • linux怎样使用命令
  • win8的ie浏览器
  • django web开发
  • css跑马灯效果
  • 浏览器firefox
  • 使用jquery实现的项目
  • javascript语言入门教程
  • 安卓手机管家推荐
  • jquery解析XML及获取XML节点名称的实现代码
  • 小规模纳税人购买车辆如何入账
  • 持有上海市居住证一年以上是什么意思
  • 合肥税务网几时成立的
  • 四川国税发票查验真伪
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设