Android:如何知道高级任务杀手杀死的活动/服务?

Posted

技术标签:

【中文标题】Android:如何知道高级任务杀手杀死的活动/服务?【英文标题】:Android: How to know activity/service killed by advanced task killer? 【发布时间】:2010-08-29 16:02:27 【问题描述】:

我只想知道如何检测到活动或服务已被高级任务杀手杀死?我期待调用 onDestroy 方法,但它没有!

我的应用在启动时启动后台服务。除了从菜单之外,该活动不会开始。但它的名字出现在高级任务杀手列表中。当我试图杀死它时,它既不会调用 onDestroy 方法,也不会调用服务。

有什么想法吗?

提前致谢。

【问题讨论】:

【参考方案1】:

我只想知道如何检测到活动或服务已被高级任务杀手杀死?

当您的任务以这种方式终止时,您不会收到任何通知。

我期待调用 onDestroy 方法,但它没有!

在多种情况下,活动或服务的onDestroy() 将不会被调用。这是其中之一。

我的应用在启动时启动后台服务。

我真诚地希望服务在几秒钟内关闭。否则,please considerwhat you are doing 是否正确。

【讨论】:

其实服务并没有做太多的工作。它刚刚启动,因此当接到电话时,它开始做一些事情。可以从activity菜单中关闭,但我只是想在服务被kill后想办法清理一下。 你觉得有来电就启动服务然后再停止比较好吗? @Doaa:“它刚刚启动,所以当接到电话时,它开始做事。” -- 您可以为此使用清单注册的BroadcastReceiver,寻找ACTION_PHONE_STATE_CHANGED。 “你认为在接到电话时启动服务然后再停止服务会更好吗?” - 是的。你的服务在内存中越少,它就越不可能成为任务杀手的目标。

以上是关于Android:如何知道高级任务杀手杀死的活动/服务?的主要内容,如果未能解决你的问题,请参考以下文章

在某些任务杀手杀死应用程序后如何恢复android应用程序?

任务杀手如何工作?

android (Service & PhoneStateListener) - 当应用程序被任务管理器、杀手或内存不足杀死时,服务确实重新启动但不工作

Android,如何使应用程序的任务不可关闭?只能通过任务杀死关闭

Android任务杀手列表

杀死进程时如何执行 logout() ?