iOS开发:推送通知,防止我的本地通知从发射
我有它的设计以特定的方式发挥作用,当它在前台的运行闹钟应用程序,它收到一个本地通知,通过我的应用程序是日程。当用户设置闹钟时,我的应用程序会创建本地通知。当本地通知触发时,它会调用didReceiveLocalNotification
方法来提醒用户。问题是,如果我的应用程序在前台运行,并且推送通知来自其他应用程序,则会显示模式推送通知视图,这会阻止我的应用程序在本地通知触发时向用户发出警报。只要我关闭推送通知模式视图,那么我的应用程序会触发本地通知。有没有解决的办法?我问,因为如果我的应用程序没有在用户安排它开火时发出警报,那么它会违反设置警报的整个目的。iOS开发:推送通知,防止我的本地通知从发射
非常感谢你的智慧!
我不相信有办法绕过它。您可能可以播放声音或振动,但操作系统已经在使用推送通知提醒来要求用户注意,因此,直到用户处理第一个提示时才真正发布另一个提示。当用户同时安排两个闹钟时,你如何处理事情?
有一个应用5种不同的状态:
- 前台运行
- 前景不活跃
- Backgroung运行
- Backgroung暂停
- 没有运行
当您启动你的应用程序,它在“For eground Active“,那么当显示模态推送通知时,您的应用程序将转到”Foreground Inactive“。
在本文档中,苹果表示(http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html):
如果它提供它的时候该应用程序在前台处于非活动状态,它会显示警报,标记应用程序图标或播放声音 - 无论在UILocalNotification对象中指定。如果应用程序在前台运行,则没有警报,徽章或声音;相反,如果委托实现它,应用程序将调用didReceiveLocalNotification:方法。
所以在前台,application:didReceiveLocalNotification:
被称为只有当你的应用程序SI活跃,而当您关闭模式通知它变得活跃。
这是边界并没有对这种情况下没有解决方案。
不知道它要排队与NSPostNow的NSNotificationQueue会工作。推送通知事件确实会触发applicationDidResignActive,不是吗? – Seyther 2011-03-08 07:23:26