0
這就是cuestion,我有:處理程序是否使用綁定線程如果我使用anoter活動的處理程序?
- 活動A
- 活動B
從我想與B通信,然後我用基於B創建的處理程序做這樣:
ActivityB.handlerB.sendMessage(msg);
那麼我不知道是否會使用ActivityA線,或者ActivityB線程。
爲了讓ActivityB Thread做好工作,它做得好嗎?
這就是cuestion,我有:處理程序是否使用綁定線程如果我使用anoter活動的處理程序?
從我想與B通信,然後我用基於B創建的處理程序做這樣:
ActivityB.handlerB.sendMessage(msg);
那麼我不知道是否會使用ActivityA線,或者ActivityB線程。
爲了讓ActivityB Thread做好工作,它做得好嗎?
除非ActvityB使用非默認的Looper創建了handlerB,否則所有發送到handlerB的消息都只會在與handlerB創建的同一個線程上傳遞它們的消息。
因此,例如,如果ActivityB以非常典型的方式從活動事件回調中創建處理程序,則handlerB會將其消息傳遞到默認UIadd。
所以,如果ActivityB作出這樣的,ActivityA是安全地調用handlerB.sendMessage():
public class ActivityB extends Activity {
Handler handlerB;
public void onCreate(Bundle bundle) {
this.handlerB = new Handler() {
public void handleMessage(Message message) {
;; // Do something
}
};
}
}
因此,對於大多數情況下,你的答案是:是的。
+1&✓。好回答,快捷。 –