1. 程式人生 > >Android非同步訊息處理機制詳解

Android非同步訊息處理機制詳解

關於Handler例項化的一些關鍵資訊,具體如下:

  1. 在主執行緒中可以直接建立Handler物件,而在子執行緒中需要先呼叫Looper.prepare()才能建立Handler物件,否則執行丟擲”Can’t create handler inside thread that has not called Looper.prepare()”異常資訊。

  2. 每個執行緒中最多隻能有一個Looper物件,否則丟擲異常。

  3. 可以通過Looper.myLooper()獲取當前執行緒的Looper例項,通過Looper.getMainLooper()獲取主(UI)執行緒的Looper例項。

  4. 一個Looper只能對應了一個MessageQueue。

  5. 一個執行緒中只有一個Looper例項,一個MessageQueue例項,可以有多個Handler例項