请教大家, 为啥handler使用了同一looper, 但是无法获取彼此发出的消息

我在主线程的两个源文件下建立了两个handler实例,让他们都使用mainLooper,想看看它们能不能收到彼此发送的消息,日志显示接受不到.
我的预期使可以收到的啊,代码如下,请熟悉这部分的同学帮忙提点一下,多谢了~

A.java文件的handler部分代码

    mHandler = new Handler(Looper.getMainLooper()) {
        @Override
        public void handleMessage(Message msg) {
            MainActivity.this.handleMessage(msg);
        }
    };

   protected void handleMessage(Message msg) {
     switch (msg.what) {
         case 1:
               Log.e("", "接收到1消息");
           break;
         default:
           break;
      }     
}

另一个文件B.java中handler部分的代码
mHandler = new Handler(Looper.getMainLooper);
mHandler.sendEmptyMessageDelayed(1, 1000);

目前结果就是B.java中handler发送的索引为1的消失,在A中的handleMessage()中是接收不到的

3个回答

参考这个看下

Android线程间通信机制

http://www.cnblogs.com/leon19870907/archive/2012/02/25/2367549.html

感谢你的热心帮助,我仔细看下这篇文章吧

一个线程hanler对应一个looper

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐