我的应用程序运行地理定位服务,用户可以通过切换按钮激活或停用该服务。为了检查服务的状态,我在 Shared Preferences 中写了一个布尔值。由于我的服务的 onDestroy(),我听到了服务的开始和结束。
我的问题是:当用户用“高级任务杀手”杀死服务时,我不知道服务被杀死了,onDestroy没有被调用!
我该如何处理?
谢谢你的帮助。
弗洛朗
我的应用程序运行地理定位服务,用户可以通过切换按钮激活或停用该服务。为了检查服务的状态,我在 Shared Preferences 中写了一个布尔值。由于我的服务的 onDestroy(),我听到了服务的开始和结束。
我的问题是:当用户用“高级任务杀手”杀死服务时,我不知道服务被杀死了,onDestroy没有被调用!
我该如何处理?
谢谢你的帮助。
弗洛朗
当一个进程被杀死时(使用 ATK 或 android 自己的强制停止按钮,或者这里的函数),它会立即从内存中清除(如果内核允许的话)。这意味着没有机会运行任何其他代码,这意味着无法真正处理发送到您的应用程序的“强制终止”。
如果你想处理这个问题,你有两个选择(我能想到):
编辑:
如果您想从当前正在运行的进程列表中检查您的进程,请查看getRunningAppProcesses()。
onDestroy()
如果要重启服务,可以在onDestroy()
.