我目前正在尝试编写iPhone应用程序,并且在理解如何正确退出应用程序时遇到一些麻烦。
基本上,我有一个向用户显示数据表的视图控制器。同时,当应用程序启动时,它会旋转一个新线程以从服务器检索数据并在后台更新表。数据正被写入本地sqlite数据库。
我担心的是,如果没有适当的清理和终止,工作线程完全有可能在一个令人讨厌的地方终止(比如在写入期间),并使sqlite数据库损坏。如果要求应用程序终止,我想发信号通知线程干净地退出。但是,据我所知,dealloc甚至没有调用我的大多数对象,所以没有任何东西实际上干净利落。现在,我正在尝试处理applicationWillTerminate,并可能在一两个重要的类上调用某种自定义的finalize方法。
因此...
答案 0 :(得分:2)
当applicationWillTerminate调用时,你有5秒的时间来做你想做的所有
如果您的申请退出时间超过5秒,系统可能会完全终止。