有时,当我正在处理的应用程序处于暂停模式时,我需要确保它在应用程序暂停时不会响应iOS为其保存的通知。哪里是执行此取消的正确位置,我可以确定我的响应代码不会运行?
我希望将removeObserver置于applicationWillEnterForeground可以解决问题,但我在NSNotification doc中找不到任何相关内容。
编辑: 让我添加场景的细节:
我正在处理的应用程序会检查接下来7天范围内日历事件的更改。它刷新了两次数据(重新查询eventStore): 1.当NSNotification来自iPhone日历时有关更改。 2.应用程序第一次能够在新的一天,因为7天的范围已经改变。
我遇到的设计挑战是两个场景同时成立的情况(应用程序从暂停状态返回并且是新的一天,并且在应用程序暂停时修改了日历事件)。在这种情况下,我只想重新查询事件存储一次。我的想法是,在applicationWillEnterForeground中,在它是当天的第一次启动的情况下,告诉应用忽略或删除任何通知。 我得到的印象是我对NSNotifications在这种情况下如何工作的假设可能会失效。任何指导都会很棒!
答案 0 :(得分:0)
为什么不从-applicationDidEnterBackground:
?
然后您可以在-applicationWillEnterForeground:
中再次开始观察。
答案 1 :(得分:0)
暂停时会发生什么NSNotifications?你在运行后台任务吗?
我无法想到一个不响应NSNotification的情况会是一个好主意。它们实际上就像其他任何消息一样,只是使用不同的路由机制。
UILocalNotification将是一个不同的问题。