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

Posted

技术标签:

【中文标题】检测应用程序何时最小化(iOS)【英文标题】:Detect when app is minimized (iOS) 【发布时间】:2016-03-01 07:17:31 【问题描述】:

我正在开发一款手机游戏,并且我有一个用于秒表的 NSTimer。一切正常,除非我最小化应用程序(按主屏幕),或者当它被电话打断时,NSTimer 继续在后台运行,当应用程序不使用时。

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

【问题讨论】:

“最小化”是错误的术语。你想要applicationWillResignActiveapplicationDidBecomeActive。可能您还想要applicationDidEnterBackground。这些都是UIApplicationDelegate的委托方法。 除了调用应用代理之外,您还会收到通知。在此处阅读应用程序生命周期:developer.apple.com/library/ios/documentation/iPhone/Conceptual/… 【参考方案1】:

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

- (void)applicationDidEnterBackground:(UIApplication *)application 
    [timer invalidate];
    timer = nil;

并在方法applicationWillEnterForeground

中创建一个新的计时器

【讨论】:

以上是关于检测应用程序何时最小化(iOS)的主要内容,如果未能解决你的问题,请参考以下文章

是否可以检测到 iOS 设备上的密码何时被修改?

[iOS]:检测从另一个外部应用程序返回后视图控制器何时出现

检测 webview 视频何时在 ios8 上变为全屏

如何检测 SD 卡何时插入?

是否可以在 JavaScript 中检测 Android 和 iOS 浏览器何时关闭屏幕

Facebook IOS SDK:检测用户何时拒绝 publish_stream 权限