在新建的线程是MainActivity的内部类的时候,总是可以的传值的,因为主线程和新线程用的是同一个handler对象;但是实际应用中我把Thread写成了一个单独的java文件FirstThread.java,
于是我在FirstHandler.java中用handler.sendMessage(msg);发送消息,想在MainActivity中的handleMessage()方法中得到;并且把FirstThread里的handler赋值给了MainActivity中的handler。
发现是得不到这个msg的,因为MainActivity中的handleMessage方法根本没有执行(原因大概是消息队列没有接收到FirstThread中传递的消息)。
请问有办法在不同文件的线程之间用Handler传递消息吗?
Android用handler在线程间传值
答案:1 悬赏:40
解决时间 2021-04-22 03:25
- 提问者网友:斯文败类
- 2021-04-21 02:39
最佳答案
- 二级知识专家网友:走,耍流氓去
- 2021-04-21 03:59
想要让Activity收到消息,就要使用它自己的handler。
你可以在activity中声明一个静态的handler,在onCreat方法中初始化。
然后再其他线程直接调用。
还有就是,你应该把activity的handler赋值给Thread的
不知道为什么百度抽了,没有办法追问,关于你的程序,我试调一下,消息传递没有问题,吧前面的网页访问注释掉直接向Activity发送消息,已经收到,请检查你代码的其他部分
你可以在activity中声明一个静态的handler,在onCreat方法中初始化。
然后再其他线程直接调用。
还有就是,你应该把activity的handler赋值给Thread的
不知道为什么百度抽了,没有办法追问,关于你的程序,我试调一下,消息传递没有问题,吧前面的网页访问注释掉直接向Activity发送消息,已经收到,请检查你代码的其他部分
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯