当应用程序closures时,在“背景”中运行计时器

我需要在应用程序closures时在后台运行计时器,但是我一直在阅读,这是不可能的。 我知道我可以在后台运行〜10分钟,但是我需要比这个更多的时间(至less2个小时)。

我想知道是否有办法通过保存应用程序closures时的计时器值,当前时间,当它重新打开时检索它们,并将它们与当前时间进行比较以获得差异来执行此操作。 然后,我可以重新启动计时器并将这些值一起添加。

任何人有任何build议,我怎么能做到这一点?

谢谢!

正确的做法是保持计时器正在运行的幻觉,而没有实际保持运行。 这有两个方面:

  1. 在应用程序离开前台之前,它应该保存有关定时器的信息(例如,如果计时器开始计时,或计时器计时应该停止的时间)。 您可以使用各种不同的技术将这些信息(例如plist,键盘存档器,核心数据等)保存在永久存储器中。

    然后,当应用程序再次启动时,检查保存的时间,并重新构build用户界面,从适当的状态再次启动计时器。

  2. 如果您倒计时一段时间(即,即使应用程序未运行,您希望让用户知道何时达到了特定时间点),您可以使用本地通知。 请参阅本地和远程通知编程指南 ,重点介绍本地通知。