当应用程序处于后台时显示警报 swift

show alert while app is in background swift

我有一种 'Alarm app' 当某个计时器达到零时应该给用户一个声音。 出于测试目的,我实现了通知,因为我不知道如何在应用程序处于后台时显示警报控制器。 此外,通知工作得很好,但在模拟中它给了我我选择的警报声音,而在我的 iphone 中它使用我的通知设置的标准铃声。 总之,我有两个问题: 1. 是否可以在应用程序处于后台时显示警报控制器 2.当通知发生时我有两种不同的声音。我将通知实现如下

AppDelegate中在didFinishLaunchingWithOptions方法中

    let notificationSettings = UIUserNotificationSettings(forTypes: UIUserNotificationType.Alert | UIUserNotificationType.Sound | UIUserNotificationType.Badge, categories: nil)
    UIApplication.sharedApplication().registerUserNotificationSettings(notificationSettings)

applicationWillResignActive

NSNotificationCenter.defaultCenter().postNotificationName("scheduleNotifications", object: self)

其中 scheduleNotifications 作为我的 ViewController

的一个方法实现

当您的应用程序处于后台时,无法 运行 任意代码。

如果您的应用程序的功能属于 Apple 定义的例外情况之一(例如播放音乐或提供 GPS 导航),则可以使用 API 继续在后台执行该任务。这似乎不适用于您的情况。

就声音而言,请参阅 'Scheduling Local Notifications' in this documentation 下的第 4 点。 简短的回答是,您应该能够使用 soundName 属性 来提供自定义声音。