在 iOS4.x 中如何知道 app 即将被杀?

Posted

技术标签:

【中文标题】在 iOS4.x 中如何知道 app 即将被杀?【英文标题】:How to know app is about to kill in iOS4.x? 【发布时间】:2011-07-20 06:30:27 【问题描述】:

我有一个在后台启用 locationServices 的应用程序。并且还有一些后台句柄代码。 我想要的是,当用户双击主页按钮并杀死我的应用程序时,我应该得到通知。没有每次调用的应用程序委托方法(100%)。虽然根据苹果的方法applicationWillTerminate: 将在终止应用程序时被调用,但在极少数情况下会被调用(100 次中有 5 次)。 有没有人对此有所了解?

【问题讨论】:

【参考方案1】:

您是否考虑实现 applicationDidEnterBackground: 方法? The doc 说,“ios 4.0 及更高版本中,当用户退出支持后台执行的应用程序时,会调用此方法而不是 applicationWillTerminate: 方法”。

【讨论】:

我在后台有一些任务,所以 applicationDidEnterBackground 对我没有用处...当应用程序被杀死时,我只想关闭显着位置服务\【参考方案2】:

当使用 Home 键隐藏应用程序时,操作系统会将其挂起在内存中。发生这种情况时,会调用 applicationDidEnterBackground:。如果此时系统决定它需要内存,它将启动关闭后台的应用程序。有时,您的应用会出现在“命中列表”中。当您的应用程序被杀死时,它会在调用 pplicationWillTerminate: 方法之后完全从内存中删除。该方法不会一直被调用,因为有时 iOS 需要内存,因此它实际上不会终止您的应用程序,而是会暂停它。

【讨论】:

【参考方案3】:

嘿,我发现了一个非常好的观察结果,如果您的应用程序在后台运行一些代码并且用户试图杀死它,则调用 applicationWillTerminate 方法。

【讨论】:

以上是关于在 iOS4.x 中如何知道 app 即将被杀?的主要内容,如果未能解决你的问题,请参考以下文章

im即时通讯开发:Android6.0及以上的保活之被杀复活

Android - 禁用权限后,进程被杀?

im即时通讯开发:Android6.0及以上的保活之被杀复活

Android防止进程被杀

Android防止进程被杀

text Android如何保证服务在后台不被杀