Ios 通知不会触发

Ios 通知不会触发,ios,swift,notifications,unusernotificationcenter,Ios,Swift,Notifications,Unusernotificationcenter,我正在尝试从上午x点到下午y点每5分钟创建一次相同的通知 UNUserNotificationCenter.current().requestAuthorization(options: [ .alert, .sound, .badge], completionHandler: {didAllow, error in}) let hours: [Int] = [13] for hour in hours { for minute in stride(from:

我正在尝试从上午x点到下午y点每5分钟创建一次相同的通知

UNUserNotificationCenter.current().requestAuthorization(options: [ .alert, .sound, .badge], completionHandler: {didAllow, error in})


    let hours: [Int] = [13]
    for hour in hours {
        for minute in stride(from: 35, to: 40, by: 1){
            let content = UNMutableNotificationContent()
            content.title = "Title"
            content.body = "Notification body"
            var dateComponents = DateComponents()
            dateComponents.hour = hour
            dateComponents.minute = minute
            print(dateComponents)
            let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)
            let request = UNNotificationRequest(identifier: ("\(hour)"+"\(minute)"+"timerDone"), content: content, trigger: trigger)
            let center = UNUserNotificationCenter.current()
            center.add(request, withCompletionHandler: nil)
            center.getPendingNotificationRequests(completionHandler: { requests in
                for request in requests {
                    print(request.trigger)
                }
            })
        }
    }
它不会在计划时间显示通知,但

center.getPendingNotificationRequests(completionHandler: { requests in
                for request in requests {
                    print(request.trigger)
                }
            })
在调试中打印有挂起的通知。 所以,通知被添加到中心并等待时间,但不要触发

有什么想法吗

调试结果显示:

小时:13分钟:35个月:假 小时:13分钟:36个月:假 小时:13分钟:37个月:假 小时:13分钟:38个月:假 小时:13分钟:39个月:假 可选的( 时间:13 分钟:35,重复:是>) 可选的( 时间:13 分钟:36,重复:是>) 可选的( 时间:13 分钟:37,重复:是>) 可选的( 时间:13 分钟:38,重复:是>) 可选的( 时间:13 分钟:39,重复:是>)


根据您的信息,应用程序在
后台状态下运行
,您的应用程序可能在从操作系统运行一段时间后被
挂起

背景

应用程序位于后台,正在执行代码。大多数应用程序都会进入此状态 简要说明他们即将被停职的情况。然而,一个应用程序 请求额外的执行时间可能会在此状态下保留一段时间 时间此外,一款直接在后台启动的应用程序 进入此状态,而不是非活动状态。有关 如何在后台执行代码,请参阅后台执行

暂停

应用程序位于后台,但未执行代码。系统 将应用程序自动移动到此状态,之前不会通知它们 这样做。挂起时,应用程序仍保留在内存中,但不会 执行任何代码。当内存不足时,系统可能会 在不通知的情况下清除挂起的应用程序,为应用程序腾出更多空间 前台应用程序

我还需要说,即使你运行了一些代码,操作系统也会挂起你的应用程序。如果您使用
位置(地理围栏)
voip
功能,则会出现一些例外情况

请查看以下文档:

根据您的信息,应用程序在
后台状态下运行
,您的应用程序可能会在离开操作系统一段时间后被
挂起

背景

应用程序位于后台,正在执行代码。大多数应用程序都会进入此状态 简要说明他们即将被停职的情况。然而,一个应用程序 请求额外的执行时间可能会在此状态下保留一段时间 时间此外,一款直接在后台启动的应用程序 进入此状态,而不是非活动状态。有关 如何在后台执行代码,请参阅后台执行

暂停

应用程序位于后台,但未执行代码。系统 将应用程序自动移动到此状态,之前不会通知它们 这样做。挂起时,应用程序仍保留在内存中,但不会 执行任何代码。当内存不足时,系统可能会 在不通知的情况下清除挂起的应用程序,为应用程序腾出更多空间 前台应用程序

我还需要说,即使你运行了一些代码,操作系统也会挂起你的应用程序。如果您使用
位置(地理围栏)
voip
功能,则会出现一些例外情况

请查看以下文档:

您的设备处于哪种状态?前台、后台还是挂起?@AlexWoe89 background是否计划每5分钟发送一次本地通知?如果是这样,则可以使用时间间隔。只是works@Mannopson不太好,我需要安排每天早上8点到晚上8点(例如)每5分钟发送一次本地通知。通过使用时间间隔,我不能在特定时间停止,而从第二天需要的小时开始。您的设备处于哪种状态?前台、后台还是挂起?@AlexWoe89 background是否计划每5分钟发送一次本地通知?如果是这样,则可以使用时间间隔。只是works@Mannopson不太好,我需要安排每天早上8点到晚上8点(例如)每5分钟发送一次本地通知。通过使用时间间隔,我不能在特定的时间停止,从我需要的第二天的小时开始。当它运行时,我按Home按钮查看是否会出现通知。当我不使用循环,只在特定时间发出1个通知时,它就会触发。但是,当我想在for循环中执行它时,它不会fireWell,我会运行应用程序。当它运行时,我按Home按钮查看是否会出现通知。当我不使用循环,只在特定时间发出1个通知时,它就会触发。但当我想在for循环中执行时,它不会启动