【发布时间】:2014-01-14 19:40:48
【问题描述】:
当我的应用程序在后台收到网络消息时,它会创建一个带有声音的 UILocalNotification 并调用 presentLocalNotificationNow。
UILocalNotification* localNotif = [[UILocalNotification alloc] init];
localNotif.alertBody = [NSString stringWithFormat:@"%@: \r%@ \r%@", NSLocalizedString(@"XXXXXXXXXXX", nil), XXXXX, XXXXXXXXXXX];
localNotif.alertAction = NSLocalizedString(@"View", nil);
localNotif.soundName = [NSString stringWithFormat:@"%@.%@", XXXXTONE_LONGVERSION_FILENAME, XXXXTONE_FILENAME_EXT];
[[UIApplication sharedInstance] presentLocalNotificationNow:localNotif];
[localNotif release];
此警报按预期以声音显示。但在某些情况下我无法停止声音。
1) 当屏幕锁定并显示此本地通知警报时:
- 如果用户通过滑动警报解锁屏幕,声音不会停止。
- 如果用户通过滑动“滑动解锁”解锁屏幕,它会停止声音。
2) 当应用程序在后台没有屏幕锁定时,当应用程序进入前台时,警报声音正常停止。
当应用在 didReceiveLocalNotification 和 applicationDidBecomeActive 中进入前台时,我确实取消了计划的本地通知。
application.applicationIconBadgeNumber = 0;
[application cancelAllLocalNotifications];
【问题讨论】:
-
这里离题了,与你的问题无关,但是当你的应用程序在后台时,你是如何让你的应用程序接收网络消息的?它是仅在应用程序在后台运行的最初几分钟内收到的网络消息吗?
-
这是一个 'voip' 应用程序
-
我注意到问题总是发生在 Touch ID 上(例如在 iPhone 5s 上)。 App 是前台还是后台。设备已锁定。通知显示在锁定屏幕上。用户使用 Touch ID 解锁(不是通过滑动通知或手动输入锁定码)。然后用户打开应用程序,声音不会停止。
-
我这里有完全相同的错误 :( 它真的是已知的 iOS7 吗?(在 iOS7.1.2 上仍然 KO)