有誰知道如何在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