如何使用UIApplicationDidBecomeActiveNotification
?
当从后台返回前台时重新加载数据,我应该在viewDidLoad
还是viewWillAppear
中声明它呢?
UIApplicationDidBecomeActiveNotification
只有当应用程序从后台返回前台时才会被调用吗?
请帮忙解答。谢谢。
如何使用UIApplicationDidBecomeActiveNotification
?
当从后台返回前台时重新加载数据,我应该在viewDidLoad
还是viewWillAppear
中声明它呢?
UIApplicationDidBecomeActiveNotification
只有当应用程序从后台返回前台时才会被调用吗?
请帮忙解答。谢谢。
有时候,当你需要在从后台唤醒时执行一些操作(假设你在该视图控制器上显示此视图控制器),拥有一个UIApplicationDidBecomeActiveNotification的监听器是有用的。在这种唤醒情况下,viewWillAppear不会被触发!
使用示例:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(someMethod) name:UIApplicationDidBecomeActiveNotification object:nil];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];
}
->}
- (void)someMethod
{
<YOUR CODE AT WAKE UP FROM BACKGROUND>
}
当然,您也可以在应用程序委托类生命周期中实现所需的所有内容。
如果您的应用程序在接到电话或推送通知时被打断,您将收到此通知。通常情况下,在中断后,如果您的应用程序正在屏幕上活跃,则会显示。
您可以注册任何在应用程序变为活动状态时加载到内存中的类作为此通知的观察者。
在 viewDidLoad
中使用以下代码:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(someMethod:)
name:UIApplicationDidBecomeActiveNotification object:nil];
使用someMethod
来处理这个通知。不要忘记在dealloc
中将此类作为观察者移除:
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIApplicationDidBecomeActiveNotification
object:nil];
这位用户询问了关于应用程序进入后台并再次回到前台时触发的系统通知。处理此情况的通知是UIApplicationDidEnterBackgroundNotification和UIApplicationWillEnterForegroundNotification。如果您需要一个在更广泛的情况下触发的通知,例如当您有系统通知、接听电话、收到短信或向上滑动控制面板,并且在后台运行时,您将需要UIApplicationWillResignActiveNotification和UIApplicationDidBecomeActiveNotification。重要的是要认识到这些是不同的,因为您可能只需要在应用程序进入后台时做出反应,而不是其他情况。