文章目錄
- 一、Looper的幾個重要方法
- 二、子線程中使用Looper的方式1
- 三、子線程中使用Looper的方式2
- 3.1 使用HandlerThread實現
- 3.2 HandlerThread源碼解析
創建子線程的
Looper
必須要通過
Looper.prepare()
初始化looper,然后再通過
Looper.loop()
方法讓
Loop
運行起來。
那么具體的細節請看下面的說明:
一、Looper的幾個重要方法
首先我們要知道Looper
相關的幾個重要方法:
Looper.prepare()
:Looper
初始化, 同時會初始化MessageQueue
,Looper
消息機制必須要初始化Looper
。Looper.myLooper()
: 獲取當前調用線程中ThreadLocal
緩存的Looper
對象。Looper.loop()
:讓Loop
進入死循環。getLooper()
:Handler
中的方法, 獲取Handler
中緩存的Looper
對象。Looper.quit()
: 終止Looper.looper()
死循環, 執行quit
后Handler
機制將失效,執行時如果MessageQueue
中還有Message
未執行, 將不會執行未執行Message
, 直接退出, 調用quit