如何在不同的过程中建立活动与服务之间的双向沟通​​?

时间:2010-03-19 08:58:16

标签: android process service android-activity android-intent

我正在努力建立一个在不同过程中运行的Activity和Service之间的双向通信。

从Activity查询进程没什么大不了的。但我希望该过程通知活动事件。它背后的想法是:服务独立于实际的应用程序运行。它定期查询Web服务器。如果在Web服务器上找到新任务,则该过程应通知该活动。

我在AndDev.org找到了this thread,但它似乎对我不起作用。我一直在搞乱BroadcastReceiver。我已经实现了一个应该通知Activity的接口,但问题是监听器总是为null,因为进程的Broadcast是通过Intent完成的,因此扩展BroadcastReceiver的类将被新实例化。

如何建立双向通信?这必须是可能的。 谢谢你的帮助,

steff

3 个答案:

答案 0 :(得分:4)

使用BroadcastReceiverActivity register a callback or listener object调用关键事件Service。上面的链接是为了预示演示每种技术的示例项目。

答案 1 :(得分:2)

我认为你应该让BroadcastReceiver再次开始你的活动,结果是在意图中。

或者你可以使用AIDL关于AIDL。样本还有一个(多个?)示例如何使用AIDL和服务。但AIDL可能会为您的目的带来麻烦。

答案 2 :(得分:2)

您必须使用BroadcastReceiver来接收意图,并且当您想要进行通信时,只需使用适当的值创建一个Intent。

这样您就可以在任何组件之间进行双向通信。