2011-12-02 34 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&✓。好回答,快捷。 –