我开发了一个应用程序,我在其中运行倒数计时器。计时器每秒触发一个方法。但是,当手机处于睡眠模式时,定时器会变慢甚至关闭。
我想我需要通过使用 NSDate 计算时间间隔来更新变量。有人知道该怎么做吗?
顺便说一句,我们的客户已发送以下反馈:
计时器问题似乎是由于代码假定计时器通知消息恰好在一秒钟内传递的事实引起的,但事实并非如此。当应用程序正在运行但手机处于待机状态时,它会使用计时器来更新倒数计时器。但是计时器来的慢于一秒,所以倒数计时器关闭了。应重新设计应用程序以始终根据当前时间更新倒计时计时器,而不是根据计时器消息本身进行倒计时。(换句话说,当一秒钟的消息进来时,总是假设额外的时间已经过去,并通过从目标时间中减去来计算剩余时间。这就是当你重新启动应用程序时发生的事情——它会计算出目标时间和当前时间,从另一个减去一个,并更新屏幕计时器。好吧,这就是它应该始终这样做的方式。)
如果有人了解我们到底需要什么,请告诉我。