我知道当你将一个应用程序放到后台时,计时器会停止运行。但是,当你从后台返回时,计时器的行为如何呢?它是否保持原始的
我遇到了一个问题,即从后台返回时,一个被设置为10分钟后触发的NSTimer有时会在
我的理论如下:
fireDate
?我遇到了一个问题,即从后台返回时,一个被设置为10分钟后触发的NSTimer有时会在
applicationWillEnterForeground:
被调用之前立即触发。如果它没有触发,并且applicationWillEnterForeground:
被调用,我有一些逻辑来检查是否已经过了10分钟,通过比较计时器的fireDate
和当前日期,然而,即使已经过去了10分钟,它总是给我一个比当前日期晚约525秒的值。我的理论如下:
只要你没有错过计划的时间,一个
NSTimer
将在从后台返回时触发计时器。 (在这种情况下,我们将计时器设置为10分钟,只要你在后台停留时间在10-20分钟之间,它就会在重新进入应用程序时触发。)如果超过了计划的时间,它就不会触发,而是在你返回时为同样的时间段安排另一个计时器。 (也就是说,如果你在后台停留了20多分钟,而计时器设定了10分钟,当你回来时,它会在未来的10分钟内安排计时器。)