1. Message Queue的角色
l 在你的Android程式裡,新誕生一個線程,或稱執行緒(Thread)時,並不會自動建立其Message Loop。
l Android裡並沒有Global的Message Queue資料結構,例如,不同APK裡的物件不能透過Massage Queue來交換訊息(Message)。
l 一個線程可以誕生一個Looper之物件,由它來管理此線程裡的Message Queue。
l 你可以誕生Handler之物件來與Looper溝通,以便push新訊息到Message Queue裡;或者接收Looper(從Message Queue取出)所送來的訊息。
l 線程A的Handler物件參考可以傳遞給別的線程,讓別的線程B或C等能送訊息來給線程A(存於A的Message Queue裡)。
l 線程A的Message Queue裡的訊息,只有線程A所屬的物件可以處理之。
l 使用Looper.myLooper可以取得目前線程的Looper物件參考值。
l 使用mHandler = new EevntHandler(Looper.myLooper()); 可誕生用來處理目前線程的Handler物件;其中,EevntHandler是Handler的子類別。
l 使用mHandler = new EevntHandler(Looper.getMainLooper()); 可誕生用來處理main線程的Handler物件;其中,EevntHandler是Handler的子類別。
l 在你的Android程式裡,新誕生一個線程,或稱執行緒(Thread)時,並不會自動建立其Message Loop。
l Android裡並沒有Global的Message Queue資料結構,例如,不同APK裡的物件不能透過Massage Queue來交換訊息(Message)。
l 一個線程可以誕生一個Looper之物件,由它來管理此線程裡的Message Queue。
l 你可以誕生Handler之物件來與Looper溝通,以便push新訊息到Message Queue裡;或者接收Looper(從Message Queue取出)所送來的訊息。
l 線程A的Handler物件參考可以傳遞給別的線程,讓別的線程B或C等能送訊息來給線程A(存於A的Message Queue裡)。
l 線程A的Message Queue裡的訊息,只有線程A所屬的物件可以處理之。
l 使用Looper.myLooper可以取得目前線程的Looper物件參考值。
l 使用mHandler = new EevntHandler(Looper.myLooper()); 可誕生用來處理目前線程的Handler物件;其中,EevntHandler是Handler的子類別。
l 使用mHandler = new EevntHandler(Looper.getMainLooper()); 可誕生用來處理main線程的Handler物件;其中,EevntHandler是Handler的子類別。