位置: 编程技术 - 正文

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

  • 公对公转账要交税税点是多少
  • 我公司租了个人的房子如何入账
  • 计提无形资产摊销额计入什么科目
  • 已认证专票有误怎么回事
  • 社保公积金占比多少
  • 利润率多少才是正常的
  • 加计抵扣进项税额会计分录
  • 残疾人就业保障金
  • 资本公积 转增
  • 证券公司清算交收
  • 装饰费是否计算缴纳土地增值税
  • 个人劳务发票怎么交税
  • 预提返利的会计处理
  • 当月作废的采购发票已认证账务如何处理?
  • 事业单位自筹事业人员
  • 新办建筑劳务公司有资质证书吗
  • 股票持有多久可以打新股
  • 增值税普通发票和普通发票的区别怎么交税
  • 生活垃圾处理项目基础金融产品包括
  • 公司不交增值税对法人有影响吗
  • 纳税调增调减项目有哪些各站多少比例
  • 个人承担的社保费有哪些
  • 企业间借款利息账务处理
  • 员工工牌的作用
  • prevsrv.exe - prevsrv是什么进程 有什么用
  • macbook上安装windows10
  • mac切换不了中文怎么回事
  • win11发布时间正式确定
  • 看望员工生病的家属支付现金如何入账
  • 房产税城镇土地使用税申报期限
  • php session实例
  • 加计抵减和加计扣除是一样的吗
  • 用php开发app
  • 电赛例题
  • Python中如何定义一个变量
  • 专项应付款怎么转固定资产
  • 关于增值税普通电子发票
  • 银行存款手工明细分类账
  • 增值税进项税加计抵扣
  • 纳税人购进固定资产一次性扣除账务处理
  • 城市维护税暂行条例
  • 一般纳税人报税需要填哪些表
  • 企业税务分为哪几类
  • db2profile
  • 小规模纳税人销售额超过500万
  • 小规模纳税人的认定标准是什么
  • 总记账凭证核算怎么做
  • 海关完税凭证如何取得
  • 贴现利息收入的账务处理
  • 中秋过节费会计分录
  • 存根联明细怎么申报
  • 销售商品的折扣
  • 固定资产的残值率是什么意思
  • 明细分类账的建账
  • vista windows
  • pe系统找不到系统
  • ubuntuiso
  • svchost进程可以结束吗
  • macos使用方法
  • windows免费升级win10
  • linux检查更新
  • javascriptdom编程
  • opengl transform
  • linux的open
  • windowsxp命令行窗口怎么打开
  • nodejs使用视频教程
  • python例题讲解
  • windows python2和python3共存
  • js html css
  • 用python编写简单程序
  • Android android.support.v4.widget.SlidingPaneLayout 侧滑示例
  • 国家税务12366电子税务局重庆
  • 广西地税局局长
  • 百旺金赋天津客服电话
  • 北京税务局地税电话
  • 残保金申报表填写
  • 免税企业可以收增值税专票吗
  • 银行内部有遴选吗知乎
  • 绿牌电动车需要过户吗?
  • 从租计征房产税怎么申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设