4

如果 UILocalNotification 触发并设置了声音,并且用户在通知警报上点击“取消”,则声音将停止。但是,如果用户点击“查看”,iOS 就会将通知传递给应用程序,并且声音会继续播放。有没有办法从应用程序中取消这个声音?通知发送后取消应用程序中的通知不起作用(我没想到,毕竟通知已经发送),因为我没有声音的系统声音ID(我没有'不首先分配它),我不能调用 AudioServicesDisposeSystemSoundID(可以吗?)。

如果用户点击通知警报的操作按钮,是否可以停止播放 UILocalNotification 声音?

4

4 回答 4

2

它也不会在设备上停止 (5.1)

我一直在尝试修复它,但我无法弄清楚。

我实际上让它停止使用这个模拟器

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (localNotif) {
        [[UIApplication sharedApplication] cancelLocalNotification:localNotif];
    }    
    return YES;
}

但它仍然不会在设备上停止

于 2012-04-13T15:04:23.587 回答
1

显然问题只存在于模拟器(iOS 4.2 sdk)上,而不存在于实际设备上。

于 2011-01-24T20:55:22.923 回答
0

可以在application delegate方法中处理如下,如果用户点击通知的alert的Action按钮,那么会调用下面的方法,我们可以取消通知

- (void)application:(UIApplication *)app
didReceiveLocalNotification:(UILocalNotification *)notif {
[[UIApplication sharedApplication]cancelLocalNotification:notif];
}
于 2014-01-08T06:57:56.457 回答
0

最初使用 iPhone 4 进行测试时,我遇到了同样的问题。

从 iOS 8 开始,该问题似乎已经消失,现在本地通知声音在转换到应用程序后取消时停止。

iPhone4 [ iOS - 7.1.2 ] - 本地通知声音在 App 中持续播放
iPhone6 [ iOS - 8.1.1 ] - 本地通知声音在以编程方式取消时停止

据我推测,iOS 8.x 中似乎存在修复
(唉,我没有找到任何关于此事的文档或发行说明。)

对于专注于 iOS 8 的应用程序,该问题不再是问题
(前提是您取消了传入的本地通知)

于 2014-12-01T22:57:06.987 回答