当我的应用程序在后台收到网络消息时,它会创建一个带声音的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];
Run Code Online (Sandbox Code Playgroud)
此警报显示为预期的声音.但在某些情况下我无法停止声音.
1)当屏幕锁定并显示此本地通知警报时:
2)当应用程序是背景屏幕锁定时,警报声音在应用程序到达前景时正常停止.
当应用程序在didReceiveLocalNotification和applicationDidBecomeActive中出现前景时,我会取消预定的本地通知.
application.applicationIconBadgeNumber = 0;
[application cancelAllLocalNotifications];
Run Code Online (Sandbox Code Playgroud)