应用关闭时在“后台”运行计时器

use*_*428 3 nstimer ios

关闭我的应用程序后,我需要在后台运行计时器,但是我一直在阅读,这是不可能的。我知道我可以在后台运行它大约10分钟,但是我需要的远远超过此(至少2个小时)。

我想知道是否存在一种方法,可以通过在应用程序关闭时保存计时器值,当前时间,在重新打开应用程序时检索它们,并将它们与当前时间进行比较来获得差值。然后,我可以重新启动计时器并将这些值加在一起。

有人对我该怎么做有什么建议?

Rob*_*Rob 5

正确的方法是保持计时器正在运行的错觉,而无需实际使计时器运行。这有两个方面:

  1. 在应用程序离开前台之前,它应保存有关计时器的信息(例如,如果您是向上计数,则为计时器启动的时间;如果您是向下计数,则应为计时器应该停止的时间)。您可以使用多种不同的技术将这些信息(例如plist,键控存档器,Core Data等)保存在持久性存储中。

    然后,当应用再次启动时,请检查保存的时间并重建UI,以从适当的状态再次启动计时器。

  2. 如果您要倒数一段时间(即,即使应用程序未运行,您想让用户知道何时到达特定时间点),也可以使用本地通知。有关本地通知,请参阅《本地和远程通知编程指南》