检测应用程序何时最小化(iOS)

6
我正在开发一个移动游戏,使用NSTimer作为计时器。一切都很顺利,但当我将应用程序最小化(按Home键)或者当它被打断,比如接电话时,NSTimer会在后台继续运行,即使应用程序没有被使用。
当应用程序被最小化/中断时,我需要使这个计时器失效,并在应用程序恢复时创建一个新的计时器。哪些方法可以处理应用程序最小化和恢复呢?

5
“Minimized”这个词是不正确的。你需要使用applicationWillResignActiveapplicationDidBecomeActive。可能你还需要用到applicationDidEnterBackground。这些都是UIApplicationDelegate的委托方法。 - Avi
除了调用应用程序委托之外,您还可以收到通知。在此处阅读有关应用程序生命周期的信息:https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TheAppLifeCycle/TheAppLifeCycle.html - Stefan
1个回答

7
您可以在UIApplication委托方法applicationDidEnterBackground中这样使计时器失效:
- (void)applicationDidEnterBackground:(UIApplication *)application {
    [timer invalidate];
    timer = nil;
}

applicationWillEnterForeground方法中创建一个新的定时器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接