Android Handler研究(1)
1.? ?解決問(wèn)題?
? ? ?跨線程通信問(wèn)題(子線程執(zhí)行耗時(shí)操作)
2.? 原理
? ? ?遍歷消息隊(duì)列(Handler Looper MessageQueue Message),其他線程填充消息隊(duì)列.
3.? 注意點(diǎn)
a. UI線程在ActivityThread自動(dòng)初始化Looper.
b. 任意線程實(shí)現(xiàn)消息隊(duì)列
?
c. 為什么主線程不會(huì)因?yàn)長(zhǎng)ooper.loop()死循環(huán)卡死?
利用Linux管道(Pipe/epoll),簡(jiǎn)單說(shuō)就是在主線程的MessageQueue沒(méi)有消息時(shí),便阻塞在loop的messageQueue.next()中的nativePollOnce()方法里.
所以說(shuō),主線程大多數(shù)時(shí)候處于休眠狀態(tài),不會(huì)消耗大量cpu資源
d. 內(nèi)存泄漏怎么處理?
PS:在Java中,非靜態(tài)的內(nèi)部類和匿名內(nèi)部類都會(huì)隱式地持有其外部類的引用,靜態(tài)的內(nèi)部類不會(huì)持有外部類的引用。
? ? ??
?
轉(zhuǎn)載于:https://www.cnblogs.com/qishuai/p/7735486.html
總結(jié)
以上是生活随笔為你收集整理的Android Handler研究(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: noip提高组2000 乘积最大
- 下一篇: Eclipse的JQuery提示插件-S