位置: 编程技术 - 正文

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

  • 城建税减半征收政策文件
  • 所得税调增调减项目有哪些
  • 需要出口
  • 怎么计算土地增值税的相关税金
  • 个税申报月份错了怎么改
  • 年报资金数额要怎样填
  • 发票没有纳税人识别号能开吗
  • 纳税申报表包含哪些内容
  • 出租土地使用权属于出租不动产吗
  • 跨地区经营企业代码表从哪里找
  • 行政单位预算资金拨付流程
  • 虚开增值税普通发票罪的立案标准
  • 建筑业异地预缴增值税流程
  • 置换上市公司资质要求
  • 待认证转进项税额转出会计分录
  • 自然人能申请破产吗?
  • 增值税普通发票税率
  • 公司未分配利润太大,怎么处理好
  • 预缴的企业所得税可以税前扣除吗
  • 可税前扣除的捐赠支出
  • 出口退税网上申报视频
  • 节能减排奖励资金追回
  • 工程发票需要进项吗
  • 法人借款可以做到短期借款吗
  • 电信网费普通发票税率为什么是0
  • 个体户能给自己交五险吗
  • 房地产公司的存货分析
  • 预付款,尾款
  • 银行多收的开户费怎么办
  • 劳务公司怎么做成本
  • win11 zen2
  • 人工单位怎么写
  • 原始凭证的分类依据有哪些?分别能分为哪些类型?
  • nicconfigsvc.exe - nicconfigsvc是什么进程 有什么用
  • 丢失增值税专用发票最新规定
  • web前端综合案例开发离线作业1
  • oppor11s输入法怎么清除记忆
  • 企业成立多久可以注销
  • 火车票抵扣进项税怎么申报填写
  • Access-Control-Expose-Headers 响应报头、跨域 公开响应头
  • 预收账款为什么是负债类的
  • 应收账款收不回来的情况说明
  • 工程补偿款开什么发票
  • 小企业投资款怎么做账
  • 公司名下商品房过户给公司需要交过户费
  • ps调色的作用
  • 车间用的液化气计入什么科目
  • 物业公司物业费税率是多少
  • SQLserver行转列
  • 材料的采购成本构成
  • 营改增清包工
  • 小规模纳税人销售不动产适用税率
  • 收到社保局的生育津贴并付给职工如何入账
  • 以前的房产证现在能过户吗
  • 小规模纳税人注册资金要求多少
  • 先清卡后报税影响申报吗
  • 实收资本调账怎么调
  • 二次加工型的企业有哪些
  • 原始凭证的审核和填制
  • 吸收的三种方式
  • Linux虚拟机下mysql 5.7安装配置方法图文教程
  • MySQL中使用____关键字来删除表格中的数据
  • VMware虚拟机安装miui14
  • ksysslim.exe
  • ie的进程
  • Linux 修改文件名后缀
  • launch software
  • node链接数据库
  • javascript原生写法
  • nodejs实例教程
  • vue3 todo
  • python中while用法
  • python第三方库文档怎么看
  • 置顶什么意思啊
  • 迭代 python
  • 保险公司个人所得税扣除标准是多少
  • 成本费用总额在报表哪里看
  • 税务局如何查询社保明细
  • 广西税务12366如何交社保
  • 企业所得税优惠事项管理目录2023
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设