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

Jos*_*nor 4 cocoa objective-c ios swift

我正在建立一个手机游戏,我有一个NSTimer用于我的秒表.一切正常,除非我最小化应用程序(按主屏幕),或当它被电话呼叫中断时,NSTimer继续在后台运行,当应用程序未使用时.

当应用程序被最小化/中断时,我需要使此计时器无效,并在应用程序恢复时创建新计时器.应用程序最小化和恢复时会处理哪些方法?

Ala*_*rao 6

您可以通过这种方式在UIApplication委托方法applicationDidEnterBackground中使AppDelegate中的计时器无效,

- (void)applicationDidEnterBackground:(UIApplication *)application {
    [timer invalidate];
    timer = nil;
}
Run Code Online (Sandbox Code Playgroud)

并在方法applicationWillEnterForeground中创建一个新的计时器