位置: 编程技术 - 正文

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

  • 生产成本年末转入什么科目
  • 一般纳税人缴纳税金分录
  • 取得住宿发票的专用发票可以抵扣吗
  • 专项附加扣除项目的6项具体规定有哪些
  • 支付境外特许权所得需要交什么税
  • 小规模纳税人小微企业免税销售额
  • 对外投资属于资产类账户吗
  • 捆绑销售行为怎么纳税
  • 润滑油消费税征税环节
  • 发行收入要减去股本吗
  • 企业的管理人
  • 税控盘的购买流程
  • 房地产企业销售现房是否预缴增值税
  • 购物发票的税是由谁承担
  • 纳税申报表未开票收入可以填负数吗
  • 怎么查企业的增值税纳税额
  • 小规模免征增值税政策2022
  • 企业分立账务处理办法
  • 公司全额承担个税会计分录
  • 应交税费和应交税金的区别属于什么科目
  • win7纯净版系统官网
  • php实现文件下载功能
  • 退回已修改是什么意思
  • 自产产品管理部门领用
  • Zend Framework+smarty用法实例详解
  • 外经证预缴
  • vscode插件大全
  • gym版本和render函数
  • chkdsk.exe/f命令
  • verilog hdl中任务可以调用
  • 进项税额计入其他流动资产
  • php源码查看
  • 报税是按照实际收入还是开票
  • db2 select as
  • 如何分析成本费用高
  • 当月开票可以当月勾选吗
  • 制造费用一定要摊销吗
  • 买房的社保指的是什么
  • 暂估价和实际价格不一致的处理方式
  • 增值税期末留抵退税原因采集确认单
  • 先付款后收到发票
  • 企业如何进行促销
  • 应交税费的进项和销项是什么意思
  • 转让无形资产的收入应计入什么科目
  • 贴现利息的计算公式为
  • 质量问题举例
  • 现金收款的程序是什么
  • 飞机票保险发票是什么样子的
  • 劳务派遣差额征税账务处理
  • 生育津贴领取条件及流程
  • 红字发票怎么申报增值税
  • 百旺金赋税盘怎么清卡
  • 待抵扣税额怎么做分录
  • 工程尾款要计入什么科目
  • 建账时都要建哪些科目
  • windows2003设置自动重启
  • vc6_cn_full.exe
  • win7怎么添加自启动程序
  • win10开始菜单怎么居中
  • nhaspx.exe是什么
  • windows7如何启动记事本
  • linux必学的60个命令及使用
  • win8系统如何恢复出厂设置
  • window10安装时间太长
  • ftql
  • 建立批处理命令
  • python爬虫入门教程
  • javascript 函数定义
  • linux shell -s
  • linux7 snmp
  • vue数组里面添加数组
  • 基于jquery的框架
  • jquery中什么方法用于模拟光标悬停事件
  • 使用 jQuery.ajax 上传带文件的表单遇到的问题
  • jquery cookie存取
  • js调用css动画
  • javascript实现2016新年版日历
  • js初级教程
  • 喜大普奔含义
  • 增值税发票怎么购票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设