我只是使用Today小部件(使用Swift)编写我的第一个iOS应用程序。我想知道在关闭通知中心后,每当我的应用返回到前台时,是否都会调用该函数。
我知道我可以使用观察器来检查UIApplicationWillEnterForegroundNotification
,但是在使用我的应用程序并再次关闭它时拉下通知中心时,不会调用我的函数。
我的问题很简单:
用户几乎不可能拉低通知中心来操纵我在应用程序中使用的数据,但是我仍然必须考虑如果这样做了会发生什么。该用户应该能够通过按下“今日”小部件按钮来保存其当前位置。
如果在使用我的应用程序时发生这种情况,则该应用程序将不会检查新数据。
最佳答案
我使用以下代码来确定在应用程序的运行期间是否打开了通知中心:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
{
BOOL notificationCenterCurrentlyDisplayed;
}
- (void) viewDidLoad
{
[super viewDidLoad];
notificationCenterCurrentlyDisplayed = false;
NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];
[defaultCenter addObserver:self selector:@selector(onNotificationCenterDisplayed) name:UIApplicationWillResignActiveNotification object:nil];
[defaultCenter addObserver:self selector:@selector(onNotificationCenterDismissed) name:UIApplicationDidBecomeActiveNotification object:nil];
}
- (void) onNotificationCenterDisplayed
{
notificationCenterCurrentlyDisplayed = true;
NSLog(@"Notification center has been displayed!");
}
- (void) onNotificationCenterDismissed
{
// Reason for this check is because once the app is launched the UIApplucationDidBecomeActiveNotification is called.
if (notificationCenterCurrentlyDisplayed)
{
notificationCenterCurrentlyDisplayed = false;
NSLog(@"Notification center has been dismissed!");
}
}
@end
当用户决定将应用程序关闭到后台时,也会显示通知中心。