【发布时间】:2019-09-15 18:59:39
【问题描述】:
我正在尝试每小时安排一次本地通知。问题是我在如此不规则的时间内收到通知。有时在 10 分钟内,或以秒为单位,或在 30 分钟内。有时我会突然在同一秒内收到 10 条通知。我不知道我在这里犯了什么错误。我提前道歉,我刚开始学习swift。
这是我的代码。
@objc func LocalNotificationHour() {
let user = UNUserNotificationCenter.current()
user.requestAuthorization(options: [.alert,.sound]) { (granted, error) in}
let content = UNMutableNotificationContent()
content.title = "Local Notification"
content.body = "Test."
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: (60*60), repeats: true)
let uuid = UUID().uuidString
let request = UNNotificationRequest(identifier: uuid, content: content, trigger: trigger)
user.add(request) { (error) in print("Error")}
}
【问题讨论】:
-
您好 Mustafa,欢迎来到 StackOverflow!没必要道歉。这是一个很好的问题,您附上了与此问题相关的代码的重要部分,并很好地解释了问题所在。完美的!我现在将查看您的代码并报告。乍一看,它似乎很正确。
-
你是在模拟器还是真机上试了代码?我现在正在模拟器中运行您的代码,timeInterval 设置为 60(每分钟一次),并且在 60 秒后通知进来。我很确定在真实设备上可能存在违规行为,例如当设备处于低功耗模式时。
-
@unixb0y 这就是奇怪的地方。我在我的实体手机上测试了代码,它确实工作了 2 天,之后我开始面临这个问题。在 60 秒内,我对此没有任何问题。当我将其设置为 60 秒时,它确实可以正常工作。但我试图只设置一个小时。或 2 小时,我有困难。
-
那么如果你再试一次,你可以重现它每小时工作2天然后停止可靠工作的问题?
-
@unixb0y 是的。它只工作了 2 天,然后停止工作。你看到我的代码有什么问题吗?特别是 let trigger = UNTimeIntervalNotificationTrigger(timeInterval: (60*60), repeats: true)
标签: ios swift localnotification