如何在iPhone应用程序中正确处理applicationWillTerminate?

时间:2009-06-18 08:34:45

标签: iphone objective-c

我目前正在尝试编写iPhone应用程序,并且在理解如何正确退出应用程序时遇到一些麻烦。

基本上,我有一个向用户显示数据表的视图控制器。同时,当应用程序启动时,它会旋转一个新线程以从服务器检索数据并在后台更新表。数据正被写入本地sqlite数据库。

我担心的是,如果没有适当的清理和终止,工作线程完全有可能在一个令人讨厌的地方终止(比如在写入期间),并使sqlite数据库损坏。如果要求应用程序终止,我想发信号通知线程干净地退出。但是,据我所知,dealloc甚至没有调用我的大多数对象,所以没有任何东西实际上干净利落。现在,我正在尝试处理applicationWillTerminate,并可能在一两个重要的类上调用某种自定义的finalize方法。

因此...

  1. 是否有一个保证的时间窗口我必须响应并且在调用applicationWillTerminate时干净地退出?
  2. 还有其他干净利落的建议吗?

1 个答案:

答案 0 :(得分:2)

当applicationWillTerminate调用时,你有5秒的时间来做你想做的所有

如果您的申请退出时间超过5秒,系统可能会完全终止。

http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ApplicationEnvironment/ApplicationEnvironment.html