设备关闭或电池耗尽时的 iOS 保存状态

标签 ios battery savestate

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

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

现在,用户提出了一个有效的用户案例场景……假设他在飞机上制作记录(没有网络)……所以所有内容都存储在本地。一切都很好,直到空姐命令他关掉电话。在应用程序中,如果关闭,他会立即关闭。现在数据丢失了。当应用程序进入后台甚至手机被锁定时,我正在保存状态。但是我怎么保证呢?

当用户关闭手机(长按锁定按钮)时,他们仍然需要滑动一个条,并且设备在关闭之前需要一些时间......所以我有一些时间可以将状态保存在......哪个代表在此期间调用了方法?

最佳答案

您的应用将按顺序调用 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 不是很熟悉,但肯定它必须具有原子保存能力。

关于设备关闭或电池耗尽时的 iOS 保存状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10935921/

相关文章:

c# - 保存表单状态然后以相同状态打开它

Xcode 记住折叠/打开了哪些文件夹

savestate - 在XNA 4.0中保存游戏数据的一个好例子是什么?

ios - "Attempt to set a non-property list object...."带有自定义类的 NSMutableDictionary

ios - 如何让音量键对 Audioplyer Sound 不显示效果

c++ - Linux C++ : apis vs/proc files?

powershell - 在 Windows 上获取 CMOS 电池状态信息

ios - 如何在较新的iOS中隐藏工具栏?

ios - 如何避免 viewWillAppear 和 viewDidAppear 之间的延迟

android - 连接BLE设备后如何获取电池电量?