7

我的应用程序运行地理定位服务,用户可以通过切换按钮激活或停用该服务。为了检查服务的状态,我在 Shared Preferences 中写了一个布尔值。由于我的服务的 onDestroy(),我听到了服务的开始和结束。

我的问题是:当用户用“高级任务杀手”杀死服务时,我不知道服务被杀死了,onDestroy没有被调用!

我该如何处理?

谢谢你的帮助。

弗洛朗

4

2 回答 2

2

当一个进程被杀死时(使用 ATK 或 android 自己的强制停止按钮,或者这里的函数),它会立即从内存中清除(如果内核允许的话)。这意味着没有机会运行任何其他代码,这意味着无法真正处理发送到您的应用程序的“强制终止”。

如果你想处理这个问题,你有两个选择(我能想到):

  1. 发布免责声明,告诉用户将您的应用添加到 ATK 的“忽略”列表中。
  2. 找到一些不依赖 onDestroy() 方法来维护功能的方法。

编辑:

如果您想从当前正在运行的进程列表中检查您的进程,请查看getRunningAppProcesses()

于 2011-05-02T20:37:36.577 回答
-1

onDestroy()

如果要重启服务,可以在onDestroy().

于 2012-07-02T07:17:01.497 回答