2013-10-10 74 views
1

我正在构建活动跟踪应用程序。应用功能正在追踪您为某项活动所花费的时间。在用户按下开始按钮之后,我启动一个NSTimer,在CoreData中创建一个对象并更改一些按钮的状态,标签...活动跟踪应用程序的多任务处理

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

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

提前致谢!

回答

0

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

  • 首先,确保您没有使用NSTimer来“计数”时间。这种方法不起作用。您可以使用NSTimer来更新UI,但您应该通过从当前时间减去开始时间来确定已经过了多长时间。鉴于此,您不需要在后台运行以追踪时间流逝。
  • 由于您在用户按下启动按钮时创建了一个核心数据对象,因此很多麻烦已经为您处理。只要确保在进入后台之前保存即可。当你回来时,重新加载你当前的记录。
  • 在你的故事板中,给你的视图控制器一个故事板和恢复ID。这告诉iOS,您希望它跟踪这些并为您恢复它们。

Storyboard ID

  • 实现您的视图控制器encodeRestorableStateWithCoder:decodeRestorableStateWithCoder:跟踪哪个对象,你还在工作。所有这些都在上面链接的国家保存和恢复文件中解释。