在iphone应用程序的任何位置订阅applicationWillResignActive等活动的代码是什么?
[UPDATE]
让我重新解释一下我的问题。我不想在我的应用程序委托中对此做出响应,而是从另一个类中听取此事件。这是可能的还是我需要将事件从应用程序委托传递给相关的类?
答案 0 :(得分:75)
看起来您正在寻找此代码。
- (void) applicationWillResign {
NSLog(@"About to lose focus");
}
- (void) myMethod {
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(applicationWillResign)
name:UIApplicationWillResignActiveNotification
object:NULL];
}
答案 1 :(得分:12)
查看您正在讨论的方法的文档:
<强> applicationWillResignActive:强>
告诉代理该应用程序将变为非活动状态。这个方法是可选的。
- (void)applicationWillResignActive:(UIApplication *)application
[...]
讨论
[...]
在它变为非活动状态之前,该应用程序还会发布 UIApplicationWillResignActiveNotification 。
答案 2 :(得分:4)
在您的应用程序委托中实现以下方法:
-(void)applicationWillResignActive:(UIApplication *)application
这允许您在应用程序变为非活动状态时做出反应 - 在这种情况下,它正在执行但不会调度传入事件。例如,当弹出覆盖窗口或设备被锁定时会发生这种情况。
在它变为非活动状态之前,该应用程序还会发布UIApplicationWillResignActiveNotification。
答案 3 :(得分:0)
您的主题和问题要求略有不同。
您的应用程序将自动接收applicationWillResignActive以及applicationWillTerminate。无需订阅,只需在您的应用中实现该功能。
至于如何回应,这取决于应用程序。虽然您可以选择不执行任何操作,但建议的行为是停止或减慢任何非关键功能。例如。如果你是一个游戏,你将停止更新显示和/或暂停游戏。