1. 繼承關係
java.lang.Object
|____android.os.Looper
2. 類概要
這個類被用來給線程返回一個訊息迴圈。預設情況下,沒有跟線程相關聯的訊息迴圈;線上程中調用prepare()方法會運行這個迴圈,並且loop()方法會一直處理訊息,直到迴圈被終止。
跟訊息迴圈的大多數互動是通過Handler類來完成的。
以下是訊息迴圈線程實現的典型的例子,它使用prepare()和loop()方法把用於跟Looper通訊的初始Handler對象的建立過程夾在中間:
class
LooperThread extends
Thread {
public
Handler mHandler;
public
void run()
{
Looper.prepare();
mHandler
=
new Handler()
{
public
void handleMessage(Message msg)
{
// process incoming messages here
}
};
Looper.loop();
}
}
3. 類說明
Public方法 |
void |
dump(Printer pw, String prefix) |
synchronized static Looper
|
getMainLooper() 返回應用程式的主迴圈,應用程式就生活在這個主線程中。 |
Thread |
getThread() 返回跟這個訊息迴圈關聯的線程。 |
static void |
loop() 運行線程中的訊息佇列。必須確保調用quit()方法來結束迴圈。 |
static Looper |
myLooper() 返回跟當前線程相關聯的Looper對象。如果線程與一個Looper對象相關聯,那麼就返回null。 |
static MessageQueue |
myQueue() 返回跟當前線程向關聯的MessageQueue對象。這個隊列必須線程正在啟動並執行Looper對象所調用的隊列,如果有異常,則會拋出一個NullPointerException類型異常。 |
static void |
prepare() 把當前線程當做一個訊息迴圈來初始化。它提供了一個在啟動訊息訊息迴圈之前,建立訊息迴圈所要引用的處理器的機會。調用這個方法之後,必須確保調用loop()方法,並且通過調用quit()方法來結束訊息迴圈。 |
static void |
prepareMainLooper() 把當前線程當做一個訊息迴圈來初始化,並把這個線程標記為應用程式的主線程。因為應用程式的主訊息迴圈是由Android環境建立的,因此我們沒有必要調用這個方法。 |
void |
quit() |
String |
toString() 返回一個簡要的外人能夠讀懂的描述本對象的字串。 |
void |
setMessageLogging(Printer printer) 控制該Looper處理的日誌資訊。如果啟用這個功能,那麼在每次訊息分發的開始和結束時,表示目標Handler對象和訊息內容的log訊息會被寫入Printer對象。 參數說明: printer:一個接受log訊息的Printer對象,如果參數值null,則禁用訊息日誌。 |
繼承方法來自java.lang.Object。