在iOS应用程序中保持计数器在后台运行

时间:2014-04-30 15:58:01

标签: ios background

我有一个具有倒计时功能的应用程序(倒数6小时,直到达到0)。 当用户将应用程序移动到后台时,计数器将停止并仅在应用程序返回前台时恢复。 当应用程序终止时,计数器会自行重置。

有没有办法让它保持运行无论如何? Apple Clock应用程序在启动秒表时有一个类似的功能,即使在终止应用程序并重新启动它之后它仍然可以正常工作。

非常感谢!!

1 个答案:

答案 0 :(得分:6)

由于你倒计时,你实际上并不想计算滴答声,因为那是不可靠的。

相反,请记住开始时间。然后,每次打勾,计算自开始时间以来经过的时间。

正如您所知,当应用程序在后台时,计时器会停止。但是当你知道无关紧要的开始时间时:当你的应用程序回到前台时,你只需再次计算经过的时间,如果你所希望的时间跨度已经过去,你就会采取行动。

要在您的应用被杀死时使其工作,您需要通过NSUserDefaults记住时间。下次启动应用时,您会从NSUserDefaults中读取日期,然后检查时间是否已经过去。如果是这样,请采取行动。如果没有,请启动计时器。

完成操作后,请清除NSUserDefaults中的日期。

最后但并非最不重要的一点是,您可能还想查看可以安排在某个时间点火的local notifications。当您的应用处于后台或未投放时,您可以使用它们来提醒您的用户。