这似乎是一个奇怪的要求,所以我将描述我想要做的事情,以及为什么我认为我需要知道什么时候删除任务。
基本上,我正在尝试在后台记录位置。我找到了一个关于如何使用BroadcastReceiver
,here执行此操作的粗略示例,并且我设法实现了它。我可以通过JavaScript以编程方式打开和关闭它。
然而,我在关闭时无法管理。我想在用户从最近的菜单中滑动主应用程序时将其关闭,但是当应用程序因内存不足而被销毁时则不会关闭。
我可以在应用程序不再运行时在BroadcastReceiver
检测中添加一个检查,但我无法检测它是如何关闭的。
有没有办法检测应用程序何时以这种方式关闭?
我发现onTaskRemoved()但我不确定如何在这种情况下使用它,或者是否会因应用程序因内存不足而被销毁而被调用。
答案 0 :(得分:1)
可以使用服务来完成。
只需使用activity.startService(<Intent>)
启动服务,即可确保在从最近菜单移除活动时调用服务onTaskRemoved()
。
然后,服务可以调用方法来停止后台更新。就我而言,那是LocationServices.FusedLocationApi.removeLocationUpdates(<GoogleApiClient>, <Intent>);
。
BroadcastReceiver
是服务本地的,还是作为自己的类实现,似乎并不重要。
可以找到工作实施here。