如何检测 Cordova 应用程序何时从 Android 插件中的最近菜单中删除?
How can I detect when a Cordova app has been removed from the recents menu, from within an Android plugin?
这似乎是一个奇怪的要求,所以我将只描述我正在尝试做的事情,以及为什么我认为我需要知道任务何时被删除。
本质上,我是想在后台记录位置。我找到了一个关于如何使用 BroadcastReceiver
、here 执行此操作的粗略示例,并且我设法实现了它。我可以从 JavaScript.
以编程方式打开和关闭它
但是,当它关闭时我无法管理。我想在用户从最近菜单中滑动主应用程序时将其关闭,而不是在应用程序因内存不足而被销毁时关闭。
我可以在 BroadcastReceiver
检测应用何时不再 运行 中添加检查,但我无法检测它是如何关闭的。
有什么方法可以检测应用程序何时以这种方式关闭吗?
我找到了 onTaskRemoved() 但我不确定在这种情况下如何使用它,或者是否会在应用程序因内存不足而被销毁后调用它。
可以使用服务来完成。
只需使用 activity.startService(<Intent>)
启动服务即可确保在从最近菜单中删除 activity 时调用服务的 onTaskRemoved()
。
然后服务可以调用一个方法来停止后台更新。就我而言,即 LocationServices.FusedLocationApi.removeLocationUpdates(<GoogleApiClient>, <Intent>);
.
BroadcastReceiver
是服务本地的,还是作为其自身的 class 实现的,似乎并不重要。
可以找到有效的实现 here。
这似乎是一个奇怪的要求,所以我将只描述我正在尝试做的事情,以及为什么我认为我需要知道任务何时被删除。
本质上,我是想在后台记录位置。我找到了一个关于如何使用 BroadcastReceiver
、here 执行此操作的粗略示例,并且我设法实现了它。我可以从 JavaScript.
但是,当它关闭时我无法管理。我想在用户从最近菜单中滑动主应用程序时将其关闭,而不是在应用程序因内存不足而被销毁时关闭。
我可以在 BroadcastReceiver
检测应用何时不再 运行 中添加检查,但我无法检测它是如何关闭的。
有什么方法可以检测应用程序何时以这种方式关闭吗?
我找到了 onTaskRemoved() 但我不确定在这种情况下如何使用它,或者是否会在应用程序因内存不足而被销毁后调用它。
可以使用服务来完成。
只需使用 activity.startService(<Intent>)
启动服务即可确保在从最近菜单中删除 activity 时调用服务的 onTaskRemoved()
。
然后服务可以调用一个方法来停止后台更新。就我而言,即 LocationServices.FusedLocationApi.removeLocationUpdates(<GoogleApiClient>, <Intent>);
.
BroadcastReceiver
是服务本地的,还是作为其自身的 class 实现的,似乎并不重要。
可以找到有效的实现 here。