这就是我的问题:
- 活动
- 活动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
}
};
}
}
所以,在大多数情况下,你的答案是:是的。