检测应用程序何时最小化(iOS)
Posted
技术标签:
【中文标题】检测应用程序何时最小化(iOS)【英文标题】:Detect when app is minimized (iOS) 【发布时间】:2016-03-01 07:17:31 【问题描述】:我正在开发一款手机游戏,并且我有一个用于秒表的 NSTimer。一切正常,除非我最小化应用程序(按主屏幕),或者当它被电话打断时,NSTimer 继续在后台运行,当应用程序不使用时。
我需要在应用程序最小化/中断时使此计时器无效,并在应用程序恢复时创建一个新计时器。当应用程序最小化和恢复时有哪些方法处理?
【问题讨论】:
“最小化”是错误的术语。你想要applicationWillResignActive
和applicationDidBecomeActive
。可能您还想要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]:检测从另一个外部应用程序返回后视图控制器何时出现