2011-12-02 35 views

回答

2

除非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 
     } 
    }; 
    } 
} 

因此,對於大多數情況下,你的答案是:是的。

+0

+1&✓。好回答,快捷。 –