针对活动跟踪应用的多任务处理

时间:2013-10-10 10:16:30

标签: ios core-data multitasking

我正在构建一个活动跟踪应用。应用功能正在跟踪您为活动花费的时间。用户按下START按钮后,我初始化NSTimer,在CoreData中创建一个对象并更改某些按钮,标签的状态......

问题是如何在用户按Home键后恢复应用状态。我可以恢复应用程序状态,以防用户从后台模式重新打开它而不会终止。但是我无法恢复,以防它在后台终止。

你们可以建议我解决这个问题吗?我是否可以保留应用程序不会被终止或更好的解决方案?

提前感谢!

1 个答案:

答案 0 :(得分:0)

做得非常好是一个相当长的话题,但这个概念被称为State Restoration。在它的基本形式(这是您可能需要的全部)中,它实际上非常简单,如果您要求它,系统将自动为您完成大部分工作。一些指示:

  • 首先,请确保您没有使用NSTimer来“计算”时间。这种方法不起作用。您可以使用NSTimer更新UI,但是您应该通过从当前时间减去开始时间来确定已经过了多少时间。鉴于此,您无需在后台运行以跟踪时间段。
  • 由于您在用户按下启动时正在创建Core Data对象,因此已经为您解决了很多麻烦。只需确保在进入后台之前保存。当你回来时,重新加载你当前的记录。
  • 在故事板中,为视图控制器提供故事板和恢复ID。这告诉iOS您希望它跟踪这些并为您恢复它们。

Storyboard ID

  • 在视图控制器中实施encodeRestorableStateWithCoder:decodeRestorableStateWithCoder:,以跟踪您正在使用的对象。所有这些都在上面链接的国家保存和恢复文件中进行了解释。