我有一个应用程序,当终止时需要同步sqlite数据库的内容
要知道应用程序何时终止,我在应用程序委托的applicationWillTerminate:method中放置了一个断点。但调试器从不在那里执行。
我知道两种终止应用程序的方法:
这两种方法都不会导致调试器进入我的应用程序委托的applicationWillTerminate:方法。
如果我使用第一种方法,我甚至会得到一个例外:我在这一行中收到了SIGKILL:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
似乎模拟器即使没有该信号的处理程序也会启动SIGKILL 最后一条消息是mach_msg_trap。
答案 0 :(得分:2)
来自文档
对于不支持后台执行或不支持后台执行的应用程序 与iOS 3.x或更早版本相关联,此方法始终在调用时调用 用户退出应用程序。对于支持的应用程序 后台执行时,此方法一般不会被调用 用户退出应用程序,因为应用程序只是移动到 那种情况下的背景。但是,可以调用此方法 应用程序在后台运行的情况(不是 由于某种原因,系统需要终止它。
您可能想要applicationWillResignActive:
。