- (void)applicationDidEnterBackground:(UIApplication *)application
Posted
技术标签:
【中文标题】- (void)applicationDidEnterBackground:(UIApplication *)application【英文标题】: 【发布时间】:2010-10-25 19:21:09 【问题描述】:我可以在 AppDelegate 以外的地方使用下面的方法吗?如果可以,如何?
【问题讨论】:
【参考方案1】:不,但您可以让其他对象注册UIApplicationDidEnterBackgroundNotification
通知。然后这些对象将在调用applicationDidEnterBackground:
的同时得到通知。
【讨论】:
这个答案似乎更可取,因为您没有发布多余的通知。【参考方案2】:这是UIApplicationDelegate
协议的一个方法,只能由符合它的类来实现。
您可以使用NSNotificationCenter
对象从您的应用委托中为您的应用中的其他对象设置通知:
- (void)applicationDidEnterBackground:(UIApplication *)application
[[NSNotificationCenter defaultCenter] postNotificationName:@"didEnterBackground" object:self];
您还可以收听UIApplicationDidEnterBackgroundNotification
通知,而不是执行上述操作。
像这样注册你想要监听通知的对象:
[[NSNotificationCenter defaultCenter] addObserver:someObject selector:@selector(someMethod:) name:@"UIApplicationDidEnterBackgroundNotification" object:nil];
【讨论】:
你能举个例子说明这段代码放在哪里,以及如何调用它?换句话说,这是保存整个视图,还是视图中的对象? 不要使用第一个选项。并在第二个选项中使用适当的常量,而不是硬编码通知名称。以上是关于- (void)applicationDidEnterBackground:(UIApplication *)application的主要内容,如果未能解决你的问题,请参考以下文章