位置: 编程技术 - 正文

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

  • 增值税发票是什么纸张型号
  • 费用发票跨月可以入帐吗
  • 分公司预缴企业所得税怎么算
  • 公司在筹备阶段可以不交社保
  • 间接持股数怎么计算
  • 委托贷款的资金借出方是谁
  • 发票抬头开错重开怎么处理?
  • 进项税额转出要补所得税吗
  • 不得抵扣的进项税额的情形有
  • 核定征收企业有利润如何注销税务登记
  • 亏损企业对外捐赠的税前扣除
  • 异地缴纳个人所得税
  • 代理进出口公司结售汇
  • 深圳制造业税收
  • 出口退税审核系统疑点
  • 在产品的成本
  • 研发企业退税
  • 税控盘上报
  • 出售股票公允价值变动损益
  • 增值税税差调整原因
  • win10怎么看电脑名称
  • win7系统的系统配置里设置开机启动项
  • 应交税费年末账务处理
  • 笔记本如何进行截图
  • php中的预定义变量
  • mmtraylsi.exe是什么进程 有什么作用 mmtraylsi进程查询
  • 呆账损失是什么意思
  • 旧房屋转卖的协议怎么写
  • 个人销售废旧物资如何开票
  • php教程100
  • 农业经营许可证范围
  • php魔术方法功能与用法实例分析
  • 信用卡收款怎么查询
  • 物流公司开几个点的发票
  • 母公司的资质怎样才能转给子公司
  • 电子商务公司怎么做账比较合适
  • 公司项目支付的钱叫什么
  • python rem
  • 应收账款是否存在的审计程序
  • 现金科目的指定科目是什么
  • 劳务派遣人员保险
  • 房租押金需要缴税吗
  • sql中聚合函数的用法
  • 企业会计准则子公司
  • 原材料的对应账户有哪些
  • 增值税专用发票几个点
  • 境外运费支付属什么费用
  • 购买二手车后
  • 职工教育经费产生的差异
  • 留抵进项税太多怎么办
  • 公司租赁个人车辆租金多少合适
  • 多计提的城建税怎么冲减
  • 跨年度的银行未入账如何处理
  • 解除合同补偿金需要缴纳个税吗
  • 工业用电交税怎么算
  • 增值税开票系统怎么改开票人名字信息
  • 暂估收不到发票,怎么处理
  • 固定资产处置有净值怎么处理
  • mysql 查询范围
  • mysql数据库操作题
  • win8.1资源管理器频繁假死
  • Win10预览版拆弹
  • vmware虚拟机激活码
  • winxp怎么自动开机
  • win8 cmd在哪
  • 如何灵活使用蒙恬
  • win10商店重置后不见了
  • glClearBufferSubData
  • linux rpm包怎么安装
  • python读取grib
  • unity如何避免碰撞穿透
  • javascript弹窗函数
  • javascript中checkbox使用方法实例演示
  • 使用JQuery实现简单的拼图网页
  • 公路局有钱吗
  • 房地产开发企业会计制度
  • 国地税合并人员瘦身
  • 税控发票开票软件提示非征期不得抄报税?是什么意思?
  • 从事货物批发或零售的纳税人
  • 军人残疾证家属享受待遇吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设