iphone - iOS 开发 : Push notifications prevent my local notifications from firing

标签 iphone ipad ios push-notification uilocalnotification

我有一个闹钟应用程序,该应用程序设计为在前台运行时以特定方式运行,并且它会收到由我的应用程序安排的本地通知。当用户设置闹钟时,我的应用会创建一个本地通知。当该本地通知触发时,它会调用 didReceiveLocalNotification 方法来提醒用户。问题是,如果我的应用程序在前台运行并且推送通知来自另一个应用程序,那么它会显示模态推送通知 View ,这会阻止我的应用程序在本地通知触发时提醒用户。一旦我关闭推送通知模态视图,我的应用程序就会触发本地通知。有没有解决的办法?我之所以问,是因为如果我的应用程序在用户安排它触发时没有触发警报,那么它就有点违背了设置警报的全部目的。

非常感谢您的智慧!

最佳答案

应用程序有 5 种不同的状态:

  • 前台活跃
  • 前台不活跃
  • 后台运行
  • 背景暂停
  • 不运行

当您启动您的应用程序时,它处于“前台事件”状态,然后,当显示模态推送通知时,您的应用程序将进入“前台不活动”状态。

Apple 在文档中说 (http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html):

如果它在应用程序未在前台处于事件状态时传送它,它会显示警报、标记应用程序图标或播放声音——无论在 UILocalNotification 对象中指定什么。如果应用程序在前台运行,则没有警报、标记或声音;相反,如果委托(delegate)实现了 application:didReceiveLocalNotification: 方法,则会调用它。

因此在前台,application:didReceiveLocalNotification: 仅在您的应用程序处于事件状态时才会被调用,并且在您关闭模态通知时它会变为事件状态。

这是临界点,没有针对这种情况的解决方案。

关于iphone - iOS 开发 : Push notifications prevent my local notifications from firing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4739990/

相关文章:

ios - 如何让 iPad 应用程序与 Windows 8 笔记本上的本地服务器通信

iphone - 相机胶卷和照片库有什么区别?

ios - 不可重现的 webcore 崩溃

ios - 在后台触摸时关闭 UIActivityIndi​​catorView

ios - 从 Interface Builder 连接的数据源在初始化程序中返回 nil

iphone - 新的 iPhone 应用程序作为旧应用程序的更新,相同的 bundle 标识符,Xcode 给出错误

iphone - 更改 Storyboard 中的开始 View

iphone - 字符串格式 yyyy-MM-dd HH :mm:ss Iphone

iPhone - 翻转 View 显示白色背景

iphone - 解密md5 iphone