當(dāng)前位置:
首頁 >
Looper、Handler应用---实现主线程向子线程发送消息
發(fā)布時間:2025/6/15
45
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Looper、Handler应用---实现主线程向子线程发送消息
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
準備知識:
Looper類:為一個線程開啟一個消息循環(huán),里面有一個消息隊列,新線程是沒有開啟消息循環(huán)的,所以需要用到Looper的方法創(chuàng)建消息循環(huán)(主線程除外,主線程會自動為其創(chuàng)建Looper對象,開啟消息循環(huán)),MessageQueue存放消息和事件 Handler類:輔助類,向綁定的Looper投遞消息 Looper原型: Looper.prepare() Looper.loop Looper.quit 代碼: [java] view plaincopy1、new Handler()必須在子線程的run方法中,否則不是子線程的Handler
2、在getHandler方法中,我加入了同步,防止線程start了,但是并沒有run結(jié)束,若此時直接返回mHandler會是一個null(不行可以試試,我一開始郁悶許久,最后在源碼中發(fā)現(xiàn)有更穩(wěn)定的實現(xiàn),所以效仿了,
后記:
看來源碼還是寫得很健壯的,仍需多加學(xué)習(xí)!
總結(jié)一下(也許不對,請懷疑):
一個線程有一個對應(yīng)的Looper,這個Looper就是消息循環(huán),我理解就是提供了一個消息循環(huán)的場所,但是消息的投遞,消息的處理它不做,它會綁定一個Handler,然后Handler去投遞和處理消息,一個線程中實現(xiàn)handleMessage,另外一個線程就可以sendMessage,線程可以主或者子,進而實現(xiàn)線程間消息的傳遞。總結(jié)
以上是生活随笔為你收集整理的Looper、Handler应用---实现主线程向子线程发送消息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android多线程----异步消息处理
- 下一篇: Handler-接受子线程数据更新UI主