6

当应用程序从任务管理器或任何其他应用程序中终止时,我想执行操作/事件。应用程序被杀死时是否有任何要执行的操作。我的应用程序像服务一样在后台运行。如果我终止应用程序,则主服务停止。我想重新开始。

4

3 回答 3

9

不,没有可靠的方法可以知道您的应用程序是否被另一个进程杀死。“杀死”应用程序的全部意义在于尽快终止它,而不让它运行任何代码。

== 不要在生产应用程序中实际使用以下建议。它们在这里纯粹是作为潜在的技术解决方案,但通常对于在最终用户设备上运行的应用程序来说并不是一个好主意。==

可能可以IBinder.linkToDeath()从辅助应用程序中使用,该辅助应用程序充当主要应用程序的监视器。但是,您还必须说服用户安装辅助应用程序。如果你能做到,你可以在两个应用程序之间建立双向监控,如果第二个被杀死,则让其中一个重新启动另一个。

您还可以尝试通过AlarmManager每隔一段时间触发的警报设置警报,以在它被杀死时重新启动您的应用程序。但是,如果您的警报周期过长,您可能会有一定的时间段无法运行您的应用程序。如果您的时间段太短,很可能您的应用不会被 Google 允许进入 Google Play 商店,并且手机上的恶意软件应用分析 (JB+) 可能会启动。此外,过于频繁启动的警报会持续设备唤醒,并很快耗尽电池。

于 2013-01-23T12:50:11.927 回答
1

如果你杀死某个进程,你只是杀死它,所以它立即停止工作。没有事件发送到应用程序。

于 2013-01-23T12:41:48.273 回答
1

我寻找同样的东西,我发现的答案是:不,应用程序不去OnDestroy()或类似的东西。

于 2013-01-23T12:47:08.060 回答