2010年1月28日 星期四

Handler, Message, MessageQueue, Looper and Thread

  1. Handler是用來處理Message,在Message裡面的what欄位可以說明Message的種類,當Message送到Handler後,Handler會看這個Message的what欄位,再用相對應的邏輯處理。
  2. MessageQueue是一個FIFO的資料結構,可以把Message暫放在裡面等待被處理。
  3. Looper是一個用來將MessageQueue裡面的Message逐一送到Handler的類別。
  4. 由於Looper會佔住Main Thread的執行,所以通常會產生一個外部的Thread來幫忙執行。每一個Thread都有自己的Looper以及MessageQueue,可以在Thread中利用getLooper()來取得looper物件,然後再用Looper.myQueue()取得該Thread的MessageQueue來使用。

沒有留言:

張貼留言