应用程序退出时将数据转储到文件

时间:2011-07-05 21:37:40

标签: iphone objective-c xcode

你们都推荐什么作为iphone项目中将用户收集的数据转储到本地文件的最佳位置?你会说applicationWillTerminate是一个不错的选择吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

iOS 4.x上更好的选项是applicationDidEnterBackground:

实际上,根据Apple文档,由于内存条件较低,后台应用程序可以随时终止。因此,建议在应用程序进入后台时保持任何状态信息。

摘自UIApplicationDelegate protocol

  

您应该使用此方法释放共享资源,保存用户数据,使计时器无效,并存储足够的应用程序状态信息,以便将应用程序恢复到当前状态,以防以后终止。您还应该禁用应用程序用户界面的更新,并避免使用某些类型的共享系统资源(例如用户的联系人数据库)。您还必须避免在后台使用OpenGL ES。

     

您执行此方法大约需要五秒钟才能执行任何任务并返回。如果你需要额外的时间......

答案 1 :(得分:0)

同样来自Apple Docs for applicationWillTerminate:

  

对于不支持后台执行或链接到iOS 3.x或更早版本的应用程序,当用户退出应用程序时,始终会调用此方法。对于支持后台执行的应用程序,当用户退出应用程序时通常不会调用此方法,因为在这种情况下应用程序只是移动到后台。但是,可以在应用程序在后台运行(未暂停)并且系统因某种原因需要终止它的情况下调用此方法。

因此,如果您明确要求不支持应用程序的后台处理或链接iOS 3.x,则应考虑在两个地方(applicationWillTerminate和applicationWillEnterBackground)持久保存以捕获情况。