应用程序被杀死时的 Android 地理围栏

Tíb*_*íbó 5 service android android-service geofencing android-geofence

我的主要要求是让服务拥有自己的流程并触发自己的地理围栏事件。我希望用户在进入地理围栏时收到通知中心的通知,即使应用程序被终止。

我读过服务,这对我来说似乎很清楚,Android 文档很密集,所以我设法了解如何使用自己的进程启动服务,以及它如何使用 Messenger 与应用程序通信。

然后是来自 Google 的此代码示例,展示了如何将地理围栏与 google play 服务一起使用: Google 示例地理围栏

到目前为止,我发现我们必须使用 IntentService 来触发地理围栏事件,并且从我读过的文档中可以看出,IntentService 在其工作完成后会自行终止。而且我也进行了一些测试,看起来 Intentservice 在应用程序被杀死时被杀死,这对文档来说并不让我感到惊讶。

所以我的问题是,我们如何执行具有自己流程的地理围栏服务?在这件事上可以避免使用 IntentService 吗?

编辑:

我想这样做的原因是用户可以设置地理围栏“提醒”,它基于日常使用。例如,假设您每天到达工作场所,当我们进入此地理围栏时,我们应该能够发出警报(或通知),以了解应用程序是否正在运行。我们不希望用户担心应用程序在后台运行。

Tíb*_*íbó 1

我实际上是通过创建具有自己流程的服务来实现这一点的。该服务与 IPC 通信绑定,然后我的活动在需要时注册到它。

在此服务中,我确实应用了在谷歌示例中找到的地理围栏示例。它使用 IntentService 来触发地理围栏事件。我没有在我的活动中使用此逻辑,而是在我自己的服务中使用它。现在,即使我的应用程序被终止,我也可以收到通知。

  • 嘿可以发布即使应用程序被终止也能保持运行的服务的代码吗? (2认同)