我有一个具有倒计时功能的应用程序(倒数6小时,直到达到0)。 当用户将应用程序移动到后台时,计数器将停止并仅在应用程序返回前台时恢复。 当应用程序终止时,计数器会自行重置。
有没有办法让它保持运行无论如何? Apple Clock应用程序在启动秒表时有一个类似的功能,即使在终止应用程序并重新启动它之后它仍然可以正常工作。
非常感谢!!
答案 0 :(得分:6)
由于你倒计时,你实际上并不想计算滴答声,因为那是不可靠的。
相反,请记住开始时间。然后,每次打勾,计算自开始时间以来经过的时间。
正如您所知,当应用程序在后台时,计时器会停止。但是当你知道无关紧要的开始时间时:当你的应用程序回到前台时,你只需再次计算经过的时间,如果你所希望的时间跨度已经过去,你就会采取行动。
要在您的应用被杀死时使其工作,您需要通过NSUserDefaults
记住时间。下次启动应用时,您会从NSUserDefaults
中读取日期,然后检查时间是否已经过去。如果是这样,请采取行动。如果没有,请启动计时器。
完成操作后,请清除NSUserDefaults
中的日期。
最后但并非最不重要的一点是,您可能还想查看可以安排在某个时间点火的local notifications。当您的应用处于后台或未投放时,您可以使用它们来提醒您的用户。