我有一个应用程序可以将手机上创建的记录与网络服务器同步。
当应用程序没有互联网连接时,它会在本地存储所有内容(核心数据),然后在互联网再次可用时同步它。
现在,用户提出了一个有效的用户案例场景……假设他在飞机上制作记录(没有网络)……所以所有内容都存储在本地。一切都很好,直到空姐命令他关掉电话。在应用程序中,如果关闭,他会立即关闭。现在数据丢失了。当应用程序进入后台甚至手机被锁定时,我正在保存状态。但是我怎么保证呢?
当用户关闭手机(长按锁定按钮)时,他们仍然需要滑动一个条,并且设备在关闭之前需要一些时间......所以我有一些时间可以将状态保存在......哪个代表在此期间调用了方法?
最佳答案
您的应用将按顺序调用 applicationWillResignActive、applicationDidEnterBackground、applicationWillTerminate。
您可以使用 applicationWillTerminate 作为保存内容的提示。
然而,标准的良好做法是确保您的数据在运行过程中定期保存,而不仅仅是在这些情况下——如果您的用户输入了大量的批处理和数据,然后您的应用程序崩溃了,数据将会如何?迷路了。
我对 Core Data 不是很熟悉,但肯定它必须具有原子保存能力。
关于设备关闭或电池耗尽时的 iOS 保存状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10935921/