返回信息流有两个类A、B,其中A的实例中创建了B的实例,而B中有一个子线程,这个子线程计算出一个数据,现在我需要把这个数据传递到A的实例中,在网上查了很多都说android线程通信使用消息机制,但这种情况下好像不好用,该怎么做呢?
另,如果A、B之间不是创建关系,而是几乎不相干(可能上推N层是由一个实例创建的),它们之间是否能直接传递数据?
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #4192同步于 2011/8/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖
【求助】android线程通信
wan751
2011/8/15镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
用handleMessage 在B线程里发送消息 然后在A线程里接收消息
Handler myMessageHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
}
}
}
发送消息
Message m = new Message();
m.what = OK;
myMessageHandler.sendMessage(m);
有个问题,比如你所说的句柄myMessageHandler,假设它是在A中声明和定义的,那如何用它在B中发送消息呢?
【 在 Zy 的大作中提到: 】
: 用handleMessage 在B线程里发送消息 然后在A线程里接收消息
: Handler myMessageHandler = new Handler() {
: public void handleMessage(Message msg) {
: ...................
【 在 wan751 的大作中提到: 】
: 有个问题,比如你所说的句柄myMessageHandler,假设它是在A中声明和定义的,那如何用它在B中发送消息呢?
: 【 在 Zy 的大作中提到: 】
: : 用handleMessage 在B线程里发送消息 然后在A线程里接收消息
: ...................
你在A里面定义 然后在A里面去启动B线程啊
大牛能否讲详细点呢,A、B是写在不同文件中的两个类,我在A中定义Handler,如何将其作为参数传入B中?感激不尽!
【 在 Zy 的大作中提到: 】
: : 有个问题,比如你所说的句柄myMessageHandler,假设它是在A中声明和定义的,那如何用它在B中发送消息呢?
: : 【 在 Zy 的大作中提到: 】
: : : 用handleMessage 在B线程里发送消息 然后在A线程里接收消息
: ...................
【 在 wan751 的大作中提到: 】
: 大牛能否讲详细点呢,A、B是写在不同文件中的两个类,我在A中定义Handler,如何将其作为参数传入B中?感激不尽!
: 【 在 Zy 的大作中提到: 】
: : : 有个问题,比如你所说的句柄myMessageHandler,假设它是在A中声明和定义的,那如何用它在B中发送消息呢?
: ...................
你在B里向A中传入参数,然后在A中处理这个参数来对相应的UI进行修改,如果不动UI的话,不需要使用消息机制吧
1.B的那个线程也可以维护一个A实例的引用吧..
2.handler呗,比如说有个C,C创建了A和B,B创建了线程T,C中有个Handler,B中有个方法是setHandler..把C.handler给他set进去
3.sendBroadcast
4.大不了回调呗..或者监听器,或者观察者
5.再拼命点还有aidl
还有什么招我就不知道了
我刚想到这个方法,准备试试。
多谢ls诸位大牛提供了这么多招,LZ再拜。
【 在 anla 的大作中提到: 】
: A创建了B,可以在A中创建B实例的时候传送handler~
: --