【问题标题】:Cancel a UILocalNotification with repeat interval取消具有重复间隔的 UILocalNotification
【发布时间】:2015-09-03 01:54:12
【问题描述】:
我正在做一个具有重复间隔的警报应用程序。我的问题是,即使用户单击本地通知,返回应用程序,然后返回手机主屏幕,UILocalNotification 仍然每分钟触发一次。我知道[[UIApplication sharedApplication] cancelAllLocalNotifications]; 并将它放在我的viewDidLoad 方法中。有什么建议可以解决这个问题吗?
【问题讨论】:
标签:
ios
objective-c
uilocalnotification
localnotification
【解决方案1】:
把它放在viewDidLoad 在某些情况下是好的,但不是你的。想想viewDidLoad 何时被调用:
在控制器的视图加载到内存后调用。
换句话说,下次调用它是在您的小ARC 朋友从内存中释放它之后。所以,是的,最终cancelAllLocalNotifications 会再次被调用,而不是当用户将应用程序置于后台然后将其返回到前台时,因为它在内存中仍然有一个家;下次将该特定视图加载到内存中时将调用它。
此外,这可能不是一个好的逻辑,因为每个用户都会发生这种情况,即使他们不想取消重复。
最终,您将不得不创建额外的逻辑来破译哪些用户使用适合您和您的项目的任何资源点击“暂停”或“取消”。就个人而言,我会指导您使用基于类别的通知,这样您就可以根据需要取消它,而不是“以防万一”。 See here 如何设置。