下次启动应用程序时,我可以解除本地通知吗?

我知道当用户在通知中心点击此通知时,我可以取消通知。 但是我可以在其他地方取消通知,我无法从系统获得相关的本地通知。 我可以序列化本地通知,并在下次运行应用程序时取消它?

对不起,让你误会!

我想在通知中心解散已发布的通知,但不是预定的通知。 所以我想问的是如何保存本地通知对象,然后我可以使用它在下次启动应用程序时自行解除。 也许这个工作不能用现在的SDK来完成。

如果您需要取消所有可以使用的通知:

[[UIApplication sharedApplication] cancelAllLocalNotifications]; 

取消特定通知:

 [[UIApplication sharedApplication] cancelLocalNotification:aNotification]; 

要获得特定的通知,您可以使用:

 NSArray *notifArray = [[UIApplication sharedApplication] scheduledLocalNotifications]; for (int i = 0; i < [notifArray count]; i++) { UILocalNotification *aEvent = [notifArray objectAtIndex:i]; NSDictionary *userInfo = aEvent.userInfo; NSString *notifId=[NSString stringWithFormat:@"%@",[userInfo valueForKey:@"id"]]; if ([id isEqualToString:cancelId]) { [[UIApplication sharedApplication] cancelLocalNotification:aEvent]; break; } } 

这里:

  • 您需要在通知的userInfo中存储一个ID键值对,以识别特定的本地通知
  • cancelId是您要取消的通知的ID(存储在用户信息中)

如果您保存了通知的链接,那么您可以在触发之前将其取消。

 [[UIApplication sharedApplication]cancelLocalNotification:yourNotification]; 

使用此代码获取所有计划的通知:

 NSArray *reminderArray=[[UIApplication sharedApplication]scheduledLocalNotifications]; 

然后,您可以select所需的通知并将其删除。

 [[UIApplication sharedApplication]cancelLocalNotification:yourNotification];