- (void)applicationDidEnterBackground:(UIApplication *)application
问题描述:
我可以在AppDelegate以外的地方使用下面的方法吗?- (void)applicationDidEnterBackground:(UIApplication *)application
- (void)applicationDidEnterBackground:(UIApplication *)application
答
这是UIApplicationDelegate
协议的一种方法,只能通过符合它的类来实现。
您可以通过使用NSNotificationCenter
对象的通知设置为从您的应用程序委托在您的应用程序的其他对象:
- (void)applicationDidEnterBackground:(UIApplication *)application {
[[NSNotificationCenter defaultCenter] postNotificationName:@"didEnterBackground" object:self];
}
也有UIApplicationDidEnterBackgroundNotification
通知,你可以听的,而不是做以上。
注册要听这样的通知的对象:
[[NSNotificationCenter defaultCenter] addObserver:someObject selector:@selector(someMethod:) name:@"UIApplicationDidEnterBackgroundNotification" object:nil];
答
没有,但你可以有其他对象注册了UIApplicationDidEnterBackgroundNotification
通知。这些对象随后会在调用applicationDidEnterBackground:
的同时被通知。
+0
这个答案似乎更可取,因为您没有发布冗余通知。 – BadPirate 2012-12-19 01:43:08
你可以举一个例子说明在哪里放置这段代码,以及如何调用它?换句话说,这是为了保存整个视图还是视图中的对象? – Jason 2012-05-29 02:06:12
请勿使用第一个选项。在第二个选项中使用适当的常量,而不是硬编码通知名称。 – rmaddy 2014-07-10 17:20:34