4
我有一个NSTimer,当我的应用程序退出活动状态时停止运行,稍后在应用程序再次变为活动状态时重新启动。我没有意识到的是applicationWillResignActive
会在我的应用程序第一次启动时触发(非常明显)。所以发生了什么事是我的NSTimer不正确地启动(当应用程序第一次启动时)。我的问题是,是否有办法检查应用程序是否从非活动状态恢复为首次启动?检查应用程序是否从非活动状态恢复为首次启动?
- (void)applicationWillResignActive:(UIApplication *)application {
// STOP CORE TIMER
[[[self mapController] coreTimer] invalidate];
[[self mapController] setCoreTimer:nil];
}
。
- (void)applicationDidBecomeActive:(UIApplication *)application {
// START CORE TIMER
[[self mapController] setCoreTimer:[NSTimer
scheduledTimerWithTimeInterval:ONE_SECOND
target:[self mapController]
selector:@selector(timerDisplay:)
userInfo:nil
repeats:YES]];
}
希望我早就知道这一点。我只是在ApplicationDidBecomeActive中使用了一个布尔检查来查看它是否刚刚启动。 – 2011-05-06 18:15:56
非常感谢,一个问题:我处理用户锁定iPhone(顶部按钮),然后使用屏幕滑块解锁它,在这种情况下,应用程序永远不会进入背景(不会很快反正),它只是从applicationWillResignActive到applicationDidBecomeActive。 – fuzzygoat 2011-05-06 18:40:10
那么根据我的测试'applicationWillResignActive'和'applicationDidBecomeActive'会在用户锁定和解锁手机时立即调用。 – 2011-05-06 22:18:24