位置: 编程技术 - 正文

Android 里面的多线程操作备忘,关于Thread,Handler, Looper(android多个dex)

编辑:rootadmin

推荐整理分享Android 里面的多线程操作备忘,关于Thread,Handler, Looper(android多个dex),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android应用多开怎么实现的,android应用多开怎么实现的,android多个activity,android多个activity,android多个dex,android几,duo android,android多个dex,内容如对您有帮助,希望把文章链接给更多的朋友!

一个优秀的Apps必然需要将耗时的操作如数据库操作/网络操作等放在其他线程(非UI),然后将结果发送至MainUI创建的Handler里面在UI显示结果(若需要的话).

而android的线程操作,除非需要非常及时,否则推荐使用HandlerThread而非Thread , HandlerThread与Handler联合使用,可能将Runnable队列化,亦就是说handler前一个post在runnable没运行完毕,后面的runnable一直在等待.

下面贴出一个例子,关于网络操作的,参数中可以选择onDone是否依然运行于子线程还是运行在MainUI,

onDoneRunInThread 参数决定handler hd的性质, onDoneRunInThread =true时,onDone后续例程则依然运行在mRunThread子线程中, 若为false则会在MainUI线程中运行, 因为new Handler()默认用的是MainUI 线程的looper.

================

另,需要一个线程安全的队列,我们需要用到ConcurrentLinkedQueue,它常用的方法有:

peek()- 从顶部取得数据,但不移除此记录,若队列为空则返回null

poll() - 同peek(),但差别是会同时移除此记录(队列记录数-1)

Android 里面的多线程操作备忘,关于Thread,Handler, Looper(android多个dex)

offer() - 在尾部添加数据,若超过容易会返回false

add() - 同offer()

===========================

关于Handler与Thread的关系,

Handler的创建可能还looper参数亦可能不带,若不还looper参数,则此handler为MainUI在looper服务,亦就是说它post的runnable或sendmessage都是在MainUI线程下运行的,

若比较耗时的操作,则应该避免用这种.

若带looper,则需要带对应thread的looper,比如上述例子中的:final Handler hd=onDoneRunInThread ? new Handler(mRunThread.getLooper()):new Handler();

先创建子线程mRunThread,然后mRunThread.start()后,再创建依赖于它的handler hd.给hd指定mRunThread的looper,则hd无论post runnable或sendmessage都在mRunThread线程中运行.

而为了直观,建议用post runnable代替sendmessage.

(转)Android高效加载大图、多图解决方案,有效避免程序OOM 现在很多有应用都是以图片为主流,所以肯定会加载大量的图片,可是现在的图片的内存都很大,一旦超过内存就会显示OOM(内存溢出)错误。在网上

android数据存储读取6:contentProvider的使用(提供自己应用的数据) contentprovider可以提供应用的数据供其它的应用使用。同时也可以利用它访问其它的应用。比如访问手机短信、手机Music、联系人等等。优点在于提供了公

音频资料 这是我在网上看到的关于各种音频式最全的一个帖子,特地转载过来,供大家参考。在些对收集者和各位作者表示真诚的感谢。1、WAV文件:采样率(Samp

标签: android多个dex

本文链接地址:https://www.jiuchutong.com/biancheng/387416.html 转载请保留说明!

上一篇:Android Java 程序员必备开发工具(android java编程)

下一篇:(转)Android高效加载大图、多图解决方案,有效避免程序OOM(安卓手机加速方法)

  • 个体的个人所得税怎么算
  • 研发费用直接计入成本吗
  • 进项税额转出还能认定虚开吗
  • 合作社免税收入需要成本吗?
  • 制造费用的借方和贷方各表示什么
  • 营改增后个人所得税计税依据实例
  • 自查补缴的企业怎么处理
  • 公司注销实收资本怎么处理
  • 票面利率大于市场利率是溢价吗
  • 可供出售金融资产新准则叫什么
  • 预付费用计入当期费用吗
  • 工业企业财务核算方法
  • 所得税汇算清缴后发现有误怎么办
  • 返税怎么操作流程
  • 补交注册资本的法律规定
  • 房租开的专票怎么做账
  • 股权转让个人所得税会计分录
  • 总分公司、母子公司:三流不一致情况下,如何抵扣增值税?
  • 期初数据科目期初余额怎么录入?
  • 企业进口葡萄酒税率多少
  • 小规模查账征收增值税怎么算
  • 公司购买的机票赔偿可以退公司嘛
  • 一次性收取一年租金
  • 税务部门罚没收入计入什么科目
  • 主营业务收入发票
  • 设备安装需要预缴吗
  • mssvr.exe - mssvr是什么进程 什么用
  • 有关五险一金的知识
  • 设计费包含概算费用吗
  • 购货方退货并已签收
  • 在vue中如果computed属性是一个异步操作怎么办?
  • 浏览器你
  • 网络安全文章1000字
  • vue请求后端接口
  • 日期按钮
  • 支付网络服务费属于现金流量表的哪一项
  • python,array
  • 应交税费会计分录怎么做明细科目
  • 补税分录
  • 主营业务成本和生产成本的关系
  • 补交地税多少钱
  • dede后台左侧菜单空白或不显示的解决办法(完美解决)
  • 软件使用权怎么入账
  • 小微企业城建税及附加减免优惠
  • 速达建账套期初数据
  • 有形动产租赁服务属于现代服务吗
  • 一般餐饮业的固废是什么
  • 银行定期存款取一部分怎么算利息
  • 营业外收入账务处理方法
  • 一般来说,采取质押贷款方式
  • 党委经费是国家政府出吗?
  • 到期不付款跟客户怎么说
  • 成本结转的方法实例
  • 餐饮食材成本高怎么形容
  • 行政事业单位负责人应当对本单位内部控制
  • 所得税滞纳金怎么算的
  • sql存储过程什么意思
  • 利用sql函数生成数据
  • skydrive pro
  • win7环境变量在哪打开啊
  • win7 系统启动
  • 优麒麟 apk
  • U盘写保护怎么处理
  • macbookair2015安装win7 单系统
  • linux判断程序是否运行
  • centos 安装chia
  • win8系统的运行在哪
  • WIN10开始菜单点不动
  • win10系统如何打开
  • js的forin
  • node.js 模块
  • fedora vlc
  • python 脚本管理
  • 谈一谈你对人与自然关系的认识
  • node.js express koa
  • Unity destructor Or OnDestory
  • javascript面向对象编程指南
  • 国税局调地方
  • 中加税务信息互换执行
  • 个人股权转让是否增值了怎么判断
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设