快速取消本地通知并创建具有相同标识符的新通知不起作用

时间:2019-05-28 09:19:26

标签: swift uilocalnotification

我正在编写一个间隔计时器,用户可以在其中选择> = 60秒的间隔来接收重复的通知。这样可以正常工作,并且通知会按预期重复,并创建如下:

func scheduleNotification(){

    let content = UNMutableNotificationContent()
    content.title = "INTERVAL TIMER"
    content.sound = UNNotificationSound.default


    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: Double(userSeconds), repeats: true)
    let request = UNNotificationRequest(identifier: "test", content: content, trigger: trigger)

    UNUserNotificationCenter.current().add(request) { (error) in
    }
}

用户可以停止计时器以设置不同的间隔,该间隔将调用此函数,然后使用新的userSeconds(间隔)值再次调用上一个函数:

func cancelNotification(){
    UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
}

但是,取消第一个间隔后设置的每个间隔的通知不会提醒用户-没有声音/振动等。

例如,我设置了60秒的间隔,并每60秒收到一则通知,取消该通知并将其更改为120秒。现在仅每120秒发出一次通知,但是没有警报。它会出现在锁定屏幕上,但不会唤醒手机或发出声音。

我已经测试过将标识符设置为userSeconds的String值,并且能够成功取消和更改间隔,除非我设置了在该会话之前使用的间隔(因此在此之前使用了该标识符),在没有警报的情况下接收通知的问题仍然存在。

有人知道原因吗?关闭应用程序并重新打开它可以解决使用相同标识符的问题

0 个答案:

没有答案