gpt4 book ai didi

iphone - applicationWillTerminate 何时调用,何时不调用

转载 作者:行者123 更新时间:2023-12-03 18:09:40 25 4
gpt4 key购买 nike

您好,我已经阅读了几个关于 applicationWillTerminate 被调用和不被调用的问题。

我想总结一下我的理解,因为有几篇文章的说法不同。

  1. 对于 IOS(无多任务处理),按下主页按钮时始终会调用它。

  2. 适用于 IOS 4 及更高版本

    a.按主页按钮时不会调用它(当应用程序移至后台时)

    b.当从多任务处理坞关闭应用程序时,如果应用程序在 info.plist 中禁用了突然终止标志,则不会调用它。 (我设置了“应用程序应该获取应用程序死亡事件”,即使这样,从多任务处理坞关闭应用程序时,也不会调用终止函数)

据此我有几个问题

设置应用程序应该获取应用程序死亡事件标志是一个好习惯吗? (我设置了“应用程序应该获取应用程序死亡事件”,即使这样,从多任务处理坞关闭应用程序时,也不会调用终止函数)

注册“UIApplicationWillTerminateNotification”是否比 info.plist 设置更好?

基本上,我只需要在应用程序终止时执行一些工作,而不是在它移动到后台时执行一些工作。

编辑(1):当应用程序终止时,以下内容将发送到应用程序。我怎样才能捕获它?

程序收到信号:“SIGKILL”。

编辑(2):

请注意:从多任务处理坞中删除时,在 IOS 4 及更高版本中不会调用它。你可能会认为是的。但就我而言,事实并非如此。

请问有人知道为什么吗?还有什么我想念的吗?

另请注意,我设置了“应用程序应该获取应用程序死亡事件”,即使如此,它也不会被调用。

编辑(3):

以下问题的答案也无效。 applicationWillTerminate does not get invoked

有人遇到和我类似的问题吗?

最佳答案

简而言之,除非您将 Info.plist 中的 UIApplicationExitsOnSuspend 设置为 YES,否则在 iOS4 及更高版本中,不能保证 applicationWillTerminate: 会被调用。

the documentation说:

For applications that support background execution, this method is generally not called when the user quits the application because the application simply moves to the background in that case. However, this method may be called in situations where the application is running in the background (not suspended) and the system needs to terminate it for some reason

(强调我的。)

如果您需要在应用程序退出之前执行某些操作,则需要在 applicationDidEnterBackground: 中执行。没有办法捕获 SIGKILL。

关于iphone - applicationWillTerminate 何时调用,何时不调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7818045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com