核心蓝牙,后台执行,终止和数据持久性

时间:2015-03-18 07:11:47

标签: ios objective-c core-data background-process core-bluetooth

我知道,有点满口。

我正在开发一款定期从蓝牙外设接收数据的应用。之后,比如20次更新,我使用Core Data持久保存数据,这比每次更新后的持久性更有效。

如果我有10个更新并且用户按下主页,则应用程序移至后台,我将上下文保存到" applicationDidEnterBackground"方法 - 没问题,即使应用程序随后被终止,也会保存10个更新。

我已经添加了UIBackground:bluetooth-central模式,以便在用户按下主页按钮后可以在后台继续更新。引用Apple:

  

当你的应用宣布这个时,系统会从暂停中唤醒它   声明允许它处理与蓝牙相关的事件。

因此,当收到蓝牙更新时,应用程序移动到后台状态,调用回调(例如didUpdateValueForCharacteristic),然后可以转换回挂起状态并可以终止。一直以来,都没有调用任何app delegate回调,新数据也会丢失。

我的问题是 - 在这种情况下我们如何/在什么时候将新数据(或更常见的任何结果应用程序状态)保存到持久存储?

0 个答案:

没有答案