如果我使用来自另一个活动的处理程序,处理程序是否使用绑定线程



这就是我的问题:

    活动
  • 活动B

从A我想与B通信,然后我使用在B上创建的处理程序这样做:

ActivityB.handlerB.sendMessage(msg);

然后我不知道它是否会使用ActivityA线程,或ActivityB线程。

为了让ActivityB线程做的工作,它做得好吗?

除非activityb使用非默认的loop创建了handlerB,否则发送给handlerB的所有消息将只在创建handlerB的同一线程中传递它们的消息。

因此,例如,如果ActivityB以一种非常典型的方式创建处理程序,从活动事件回调,handlerB将其消息传递到默认的UI头。

所以,如果activitb是这样做的,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
      }
    };
  }
}

所以,在大多数情况下,你的答案是:是的。

相关内容

最新更新