需要Android后台服务

时间:2013-06-17 03:57:11

标签: android android-activity android-service

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

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

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

任何参考?这样做的最佳方法是什么?

由于

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

如果您不想在项目中添加库,请考虑使用支持库中的LocalBroadcastManager