【发布时间】:2015-09-22 02:38:24
【问题描述】:
如下所示,我创建了 2 个内部类,它们都扩展了 Handler。我已经阅读了Android源文件中的代码,发现Handler.sendEmptyMessage()只在Looper的消息队列中加入了消息。
public class MainActivity extends Activity{
private Handler handler = new Handler(Looper.getMainLooper()){
public void handleMessage(Message msg){
//handle method1
}
}
......
}
public class MyService extends Service{
private Handler handler = new Handler(Looper.getMainLooper());
public void test(){
handler.sendEmptyMessage(0x00);
}
......
}
所以,我很困惑为什么MainActivity 中的第一个Handler 不能处理来自MyService 中的第二个Handler 的消息,当使用相同的looper 构造时?
【问题讨论】:
-
如果您想将消息从您的服务发送到您的活动,这不是正确的方法。您可以查看:stackoverflow.com/questions/4300291/… 了解更多信息。
-
@Rotem 你能告诉我如果我有多个与同一个looper相关联的处理程序会发生什么吗?
-
您不能在处理程序之间进行通信,每个处理程序都有自己的消息队列 - 在这里回答:stackoverflow.com/questions/15538270/…
标签: android