停止重复本地通知 iOS
Stop Repeating Local Notification iOS
我每 30 秒初始化一次本地通知。一旦用户按下停止本地通知的按钮,我想停止重复它。
问题是我找不到解决方法。它每 30 秒重复一次
这就是我设置 localnotification 的方式
// Schedule the notification
UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:30];
localNotification.alertBody = @"Testing Repeating Local Notification";
localNotification.applicationIconBadgeNumber = 1;
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.repeatCalendar = [NSCalendar currentCalendar];
localNotification.repeatInterval = kCFCalendarUnitSecond;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
我试过了[[UIApplication sharedApplication] cancelAllLocalNotifications];
。但它确实有效。
能否将 repeatInterval
设置为 0。根据文档,如果将其设置为零,将触发一次通知。因此,当按下停止按钮时,您可以执行以下操作
localNotification.repeatInterval = 0;
[[UIApplication sharedApplication] cancelAllLocalNotifications];
我解决了。
刚刚从上面的代码中删除了 localNotification.repeatCalendar = [NSCalendar currentCalendar];
。
当您在应用程序活动状态下收到通知时,您可以删除通知。
就像
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
if (application.applicationState == UIApplicationStateActive)
{
NSLog(@"Application is active");
/*
...
do some process
...
*/
//remove notification
[application cancelLocalNotification:notification];
}
else
{
NSLog(@"Application is inactive");
}
}
我每 30 秒初始化一次本地通知。一旦用户按下停止本地通知的按钮,我想停止重复它。
问题是我找不到解决方法。它每 30 秒重复一次
这就是我设置 localnotification 的方式
// Schedule the notification
UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:30];
localNotification.alertBody = @"Testing Repeating Local Notification";
localNotification.applicationIconBadgeNumber = 1;
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.repeatCalendar = [NSCalendar currentCalendar];
localNotification.repeatInterval = kCFCalendarUnitSecond;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
我试过了[[UIApplication sharedApplication] cancelAllLocalNotifications];
。但它确实有效。
能否将 repeatInterval
设置为 0。根据文档,如果将其设置为零,将触发一次通知。因此,当按下停止按钮时,您可以执行以下操作
localNotification.repeatInterval = 0;
[[UIApplication sharedApplication] cancelAllLocalNotifications];
我解决了。
刚刚从上面的代码中删除了 localNotification.repeatCalendar = [NSCalendar currentCalendar];
。
当您在应用程序活动状态下收到通知时,您可以删除通知。
就像
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
if (application.applicationState == UIApplicationStateActive)
{
NSLog(@"Application is active");
/*
...
do some process
...
*/
//remove notification
[application cancelLocalNotification:notification];
}
else
{
NSLog(@"Application is inactive");
}
}