你们都推荐什么作为iphone项目中将用户收集的数据转储到本地文件的最佳位置?你会说applicationWillTerminate是一个不错的选择吗?
谢谢!
答案 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)持久保存以捕获情况。