我有一个应用程序,当终止时需要同步一个sqlite数据库的内容。
要知道应用程序何时终止,我在应用程序委托的applicationWillTerminate:方法中放置了一个断点。但调试器从不在那里执行。
我知道两种方法来终止应用程序:iOS模拟器:应用程序无法终止correcly
- 就像我在iPhone上做:保持触摸应用程序图标,直到它开始颤抖,我在点击“X”;
- 停止调试器。
无这两种方法导致调试步骤在applicationWillTerminate:我的应用程序委托的方法。
如果我用第一种方法我甚至得到一个异常:我收到SIGKILL就在这一行:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
好像模拟器启动SIGKILL即使没有该信号的处理程序。
最后一条消息是mach_msg_trap。
阅读文档:“对于不支持后台执行的应用程序或者与iOS 3.x或更低版本链接的应用程序,此方法总是在用户退出应用程序时调用。对于支持后台执行的应用程序,此方法通常不会在用户退出应用程序时调用,因为在这种情况下,应用程序只是移动到后台,但是,在应用程序在后台运行(未挂起)并且系统需要终止某些应用程序的情况下原因。” –
@MikeWeller你应该把它作为一个答案..... –
我太懒惰了:P –