有谁知道如何在UIApplication上使用cancelAllLocalNotifications方法?我想知道iOS如何知道要取消什么。它是否通过App ID知道?或者它以某种方式使用应用程序的版本号?UIApplication cancelAllLocalNotifications在应用程序更新之间如何工作?
我现在正在经历的是比我预期更多的通知。这是工作流程:
- 取消对应用程序的所有通知开始对应用程序退出
- 计划通知
- *调度时,添加通知信息的“最近通话”列表
- *调度时,调度每天只有1个通知(在断开我的电话之前在XCode中的日志记录中进行了验证)。
现在,这是我遇到:
- 接收每天4个通知
- 只有通知1显示了在我的“最近通话”列表(其中有意义,因为这是所有我正在安排)
以前,我每天的通知数设置为3.然后我更新了“cancelAllLocalNotifications”方法的版本号(比如从1.1.0到1.1.1)调用。
因此,如果取消通知是以任何方式基于应用程序的版本/软件包ID,我会收到旧通知以及新通知。但是,如果不是,并且iOS知道要取消先前版本1.1.0中安排的通知,那么我不知道这些附加通知来自哪里。
在应用程序启动时,你在哪里调用cancelAllLocalNofications? – vipinagg 2012-03-02 22:53:50
@vipinagg,好点。我在两个地方给它打电话:(1)在收到通知时应用程序委托(这是错误的,但事实证明,第二次出现的位置并不重要),以及(2)在“applicationDidEnterBackground”方法中,我调用了一个调度所有通知的函数,并且函数所做的第一件事是在安排任何新通知之前取消所有通知。但好点 - 猜你问是否只在应用程序中调用:didFinishLaunchingWithOptions:但不在“applicationWillEnterForeground:”中。 – thephatp 2012-03-03 02:09:28
请按照我对此主题的回答。 [http://stackoverflow.com/a/42724415/1720559](http://stackoverflow.com/a/42724415/1720559) – 2017-03-10 17:34:51