0

我的应用程序使用用户通知框架每 30 分钟安排一次本地通知。我设置了触发器

  var trigger = UNTimeIntervalNotificationTrigger.CreateTrigger(60 * 30, true); 

但是,我想在特定时间后停止这些通知,比如说晚上 9 点。我该怎么做?

4

1 回答 1

1

有 3 个选项可以删除本地通知。

1. 当应用程序在前台时:-如果应用程序在前台,请检查本地设备时间并删除所有待处理的本地通知。

UNUserNotificationCenter.Current.RemoveAllPendingNotificationRequests();

2. 如果应用在后台:当应用在后台时,您无法在特定时间执行代码。有两种方法可以在特定时间删除本地通知。但是,操作系统决定是否调用回调方法,具体取决于可用资源、电池百分比、设备是否正在充电等。

一个。Background Fetch - 启用后台获取功能,当设备处于后台时,它将在特定时间后调用回调方法。同样,操作系统将根据应用程序的用途决定何时调用。

//Fetch interval 
UIApplication.SharedApplication.SetMinimumBackgroundFetchInterval(UIApplication.BackgroundFetchIntervalMinimum);


//Call back method
    public override void PerformFetch(UIApplication application, Action<UIBackgroundFetchResult> completionHandler)
        {
           // Code of removing local notifications
        }

湾。使用静默通知:当应用收到静默远程通知时,远程通知接收到的回调方法被调用,没有声音和警报。您可以执行代码以删除本地通知。

于 2017-01-16T07:37:06.287 回答