Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android活动中通过消息获取回复_Java_Android_Android Activity_Messages - Fatal编程技术网

Java 如何在Android活动中通过消息获取回复

Java 如何在Android活动中通过消息获取回复,java,android,android-activity,messages,Java,Android,Android Activity,Messages,我怎样才能在安卓系统中回复活动的消息?假设一个活动要求一个运行线程的java对象做一些事情,并给出回复。java对象如何知道回复发送消息的活动?我有许多活动,许多物体相互交流。 我如何用Android消息实现这一点?我不想在这里使用广播。如果您试图与线程通信,可以使用处理程序。从 Handler是Android系统的管理框架的一部分 线程。处理程序对象接收消息并运行代码来处理 这些信息 这是一篇关于这个主题的好文章:如果您试图与线程通信,则可以使用处理程序。从 Handler是Android系统

我怎样才能在安卓系统中回复活动的消息?假设一个活动要求一个运行线程的java对象做一些事情,并给出回复。java对象如何知道回复发送消息的活动?我有许多活动,许多物体相互交流。 我如何用Android消息实现这一点?我不想在这里使用广播。

如果您试图与线程通信,可以使用处理程序。从

Handler是Android系统的管理框架的一部分 线程。处理程序对象接收消息并运行代码来处理 这些信息

这是一篇关于这个主题的好文章:

如果您试图与线程通信,则可以使用处理程序。从

Handler是Android系统的管理框架的一部分 线程。处理程序对象接收消息并运行代码来处理 这些信息


关于这个主题的一篇好文章:

一种可能的方法是回调。或者观察者模式,一种可能的方法是回调。或者一个观察者模式,我们可以使用Messenger。可以将messenger设置为应答路径。在消息中,它包含处理程序,它应该返回回复

final Messenger messenger = new Messenger(handler); 
. 
.
msg.replyTo = messenger;  // set the handler of the reply activity.
msg.setData(mBundle);     // if any additional data available put to a bundle
destinationClass.mHandler.sendMessage(msg);



// in destination class

Messenger msger = msg.replyTo;  // get the message sender's details.

Message msg2 = Message.obtain();
msger.send(msg2);                // send the reply message again to the sender

我们可以使用Messenger进行此操作。可以将messenger设置为应答路径。在消息中,它包含处理程序,它应该返回回复

final Messenger messenger = new Messenger(handler); 
. 
.
msg.replyTo = messenger;  // set the handler of the reply activity.
msg.setData(mBundle);     // if any additional data available put to a bundle
destinationClass.mHandler.sendMessage(msg);



// in destination class

Messenger msger = msg.replyTo;  // get the message sender's details.

Message msg2 = Message.obtain();
msger.send(msg2);                // send the reply message again to the sender

好啊要调用处理程序,我必须知道活动实例,对吗?ActivityName.handler.sendMessage;我的问题是如何找到活动名称,因为活动和java对象位于不同的位置。Ok。要调用处理程序,我必须知道活动实例,对吗?ActivityName.handler.sendMessage;我的问题是如何找到活动名称,因为活动和java对象位于不同的位置。我正在检查android框架是否支持任何内容。不需要重新发明轮子,一种不太干净的方法是将活动的处理程序实例作为msg.obj传递。然后,接收者可以将消息发送回IT。在包裹中发送对象和通过msg.obj发送对象有什么区别。在包裹中,您需要实现parcelable接口。在msg.obj中,没有这样的要求。谢谢Ankur,但是哪一个更好?为什么一个问题有两个解决方案。我正在检查android框架是否支持任何东西。不需要重新发明轮子,一种不太干净的方法是将活动的处理程序实例作为msg.obj传递。然后,接收者可以将消息发送回IT。在包裹中发送对象和通过msg.obj发送对象有什么区别。在包裹中,您需要实现parcelable接口。在msg.obj中,没有这样的要求。谢谢Ankur,但是哪一个更好?为什么一个问题有两种解决方案。