我有一个应用程序可以将手机上创建的记录与网络服务器同步。
当应用程序没有互联网连接时,它会在本地存储所有内容(核心数据),然后在互联网再次可用时同步它。
现在用户已经提出了一个有效的用户案例场景......说他在飞机上制作记录(没有网络)......所以一切都在本地存储。一切顺利,直到空姐命令他关掉手机。在应用程序中,他立即关闭。现在数据丢失了。当应用程序进入后台或甚至手机被锁定时,我正在保存状态。但是我如何保证呢?
当用户关闭手机(长按锁定按钮)时,他们仍然需要滑动一个条,设备需要一些时间才能关闭...所以有一段时间我可以保存状态...代表在这段时间内调用方法?
答案 0 :(得分:3)
您的应用将按此顺序获取applicationWillResignActive,applicationDidEnterBackground,applicationWillTerminate调用。
您可以使用applicationWillTerminate作为保存内容的提示。
然而,标准的做法是确保您的数据会定期保存,而不仅仅是在这些情况下 - 如果您的用户输入了大量的数据和数据,然后您的应用程序崩溃了,那么数据将是丢失。
我对Core Data不是很熟悉,但肯定它必须具有原子保存能力。