3 回答

TA贡献1802条经验 获得超5个赞
简而言之,除非您UIApplicationExitsOnSuspend在Info.plist中将其设置为YES ,否则在iOS4及更高版本中,无法保证applicationWillTerminate:会被调用。
如文档所述:
对于支持后台执行的应用程序,当用户退出应用程序时通常不会调用此方法,因为在这种情况下,应用程序只是移至后台。然而,这种方法可以在其中应用程序在背景中(未暂停)运行情况被调用,该系统需要终止它由于某种原因
(强调我的。)
如果您需要在应用退出之前执行某些操作,则需要在中执行操作applicationDidEnterBackground:。无法捕捉SIGKILL。

TA贡献1877条经验 获得超1个赞
据我所知,您的应用程序将在3种情况下死亡。
在最终用户终止后,您可以在中做某事
-[UIApplication applicationWillEnterBackground:]
,在这种情况下,-[UIApplication applicationWillTerminate:]
将不会调用。被系统丢弃,例如内存不足,您可以在中做某事
-[UIApplication applicationWillTerminate:]
,在这种情况下,我们不知道是否applicationWillEnterBackground:
已被调用;崩溃了,只能使用某种崩溃报告工具来完成。(编辑:捕捉
SIGKILL
是不可能的)
- 3 回答
- 0 关注
- 429 浏览
添加回答
举报