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。
摘自 作者:FireOfStar