1

我正在构建一个 Android 应用程序。我正在尝试做一个正在运行的应用程序。这意味着我需要一个后台服务运行并计算我的 GPS 数据并将其报告给活动。

但是 - 我希望活动也能够向该服务发送操作(开始、停止等)。

我一直在努力使用几种方法来进行这种双向服务<->活动通信。

有什么参考吗?最好的方法是什么?

谢谢

4

2 回答 2

1

您是否尝试过服务绑定机制?

您可以创建用于收集 GPS 数据的服务(http://developer.android.com/guide/components/services.html),在应用程序启动时启动它(http://developer.android.com/guide/components/services。 html#StartingAService),在启动您的活动时绑定此服务并使用绑定对象在服务和活动之间传输数据(http://developer.android.com/guide/components/bound-services.html),在关闭您的活动和服务将继续在后台工作。

在此模型中,您的服务将始终工作,并在需要时传输数据。

于 2013-06-17T05:13:42.883 回答
0

当您处理相同的进程时,绑定可能是一种过度杀伤力。我建议使用 Square 的 Otto 作为事件总线机制,将事件发布到您的服务,反之亦然。

如果您不想将库添加到项目中,请考虑使用LocalBroadcastManager支持库的一部分。

于 2013-06-17T05:17:57.763 回答