当设备关闭或电池电量耗尽时,iOS保存状态

时间:2012-06-07 16:27:30

标签: ios battery savestate

我有一个应用程序可以将手机上创建的记录与网络服务器同步。

当应用程序没有互联网连接时,它会在本地存储所有内容(核心数据),然后在互联网再次可用时同步它。

现在用户已经提出了一个有效的用户案例场景......说他在飞机上制作记录(没有网络)......所以一切都在本地存储。一切顺利,直到空姐命令他关掉手机。在应用程序中,他立即关闭。现在数据丢失了。当应用程序进入后台或甚至手机被锁定时,我正在保存状态。但是我如何保证呢?

当用户关闭手机(长按锁定按钮)时,他们仍然需要滑动一个条,设备需要一些时间才能关闭...所以有一段时间我可以保存状态...代表在这段时间内调用方法?

1 个答案:

答案 0 :(得分:3)

您的应用将按此顺序获取applicationWillResignActive,applicationDidEnterBackground,applicationWillTerminate调用。

http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW3

您可以使用applicationWillTerminate作为保存内容的提示。

然而,标准的做法是确保您的数据会定期保存,而不仅仅是在这些情况下 - 如果您的用户输入了大量的数据和数据,然后您的应用程序崩溃了,那么数据将是丢失。

我对Core Data不是很熟悉,但肯定它必须具有原子保存能力。