位置: 编程技术 - 正文

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(安卓手机加速方法)

  • 个人销售二手车要交增值税吗
  • 认缴制的注册资本实缴时存哪里
  • 个人名义开工程发票税率是多少
  • 预付账款借贷方表示什么意思
  • 超过规定标准的扣除项目金额怎么算
  • 承兑汇票属于货款吗
  • 收到扶贫款怎么做会计分录
  • 个体户一个月能领多少发票
  • 黑盘报税流程视频教程
  • 报税利润表的第二季度本期金额本年累计金额是什么
  • 利润表里的所得税怎么算
  • 债券投资收益怎样计算
  • 财务方面的管理思想
  • 开发商要求业主签借款合同
  • 工程部用的测试仪器
  • 买东西几块钱忘付了怎么办
  • 员工预借差旅费属于什么科目
  • 个人电话费发票可以入账吗
  • 增值税专票给客户的是第几联
  • 企业所得税申报表在哪里打印
  • 高新企业研发费用认定条件
  • 企业收到财政专项资金账务处理
  • 0x0000709怎么解决
  • 上月预提的费用怎么记账
  • php composer自动加载
  • php session_id
  • 鸿蒙系统怎么隐藏应用图标
  • 进程中svchost
  • 福利企业退税计入哪个科目
  • hipsdaemon.exe是什么
  • 视同销售的八种情况下会计分录怎么做?
  • ios 的 safari 浏览器
  • acer笔记本如何关闭键盘数字键
  • php事物
  • framework3.5怎么打开
  • tensorflow dlib
  • 应收账款和应付账款怎么对冲
  • php中验证码如何实现登录验证
  • ai绘画图片
  • vi操作命令进入编辑命令
  • 挂靠方项目部账务是否并入被挂靠方公司账务?
  • 金税盘插电脑上没反应是怎么回事
  • 存货跌价准备的账务处理
  • 未抵扣增值税需结转吗
  • 网站的首页文件名是什么
  • 如何在控制台打印debug里的数据
  • 小微企业报税是多久报一次
  • 投资收益的主要形式有
  • php mysql教程
  • 员工高工资
  • 红字转账凭证怎样录入
  • 管理费用月底结转吗
  • 个人所得税代扣代缴手续费
  • 购入土地使用权用于建造厂房分录
  • 预计产品质量保证损失计入什么
  • 废料销售的会计处理
  • 年初余额和期末余额对不上怎么办
  • 怎么把应付账款调成应收
  • 颁给供应商的奖项
  • 会计凭证传递的组织工作主要包括
  • mysql数据库优化总结
  • sql事务处理
  • 粘贴板有问题不能粘贴怎么处理
  • netdrive mac
  • linux安装solr
  • linuxsu命令作用
  • centos安装位置选择
  • win10修改启动
  • 打开linux系统
  • unix和linux是使用较为广泛的多用户交互
  • centos7 rpm包安装
  • 基于javascript数独游戏论文参考文献
  • ubuntu搭建ftp服务器的步骤
  • 怎么做小地图
  • 简单的jquery插件实例
  • 安卓xml存储方式
  • 重庆税务局官网发票查询
  • 深圳国税电子税务局
  • 中国税务报优秀文学作品年度评选
  • 试验费属于什么税收编码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设