在 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及以上的保活之被杀复活