Есть 3 варианта удаления локальных уведомлений.
1. Когда приложение находится на переднем плане: - Если приложение находится на переднем плане, проверьте время локального устройства и удалите все ожидающие локальные уведомления.
UNUserNotificationCenter.Current.RemoveAllPendingNotificationRequests();
2. Если приложение в фоновом режиме: Вы не можете выполнить код в определенное время, когда приложение находится в фоновом режиме. Существует два подхода к удалению локального уведомления в определенное время. Тем не менее, именно ОС решила, должны ли методы обратного вызова вызывать или нет, в зависимости от доступных ресурсов, процент заряда батареи, устройство заряжается и т. Д.
a. Фоновая выборка - Включить возможность фоновой выборки, которая вызовет метод обратного вызова после определенного времени, когда устройство находится в фоновом режиме. Опять же, ОС решит, когда звонить в зависимости от использования приложения.
//Fetch interval
UIApplication.SharedApplication.SetMinimumBackgroundFetchInterval(UIApplication.BackgroundFetchIntervalMinimum);
//Call back method
public override void PerformFetch(UIApplication application, Action<UIBackgroundFetchResult> completionHandler)
{
// Code of removing local notifications
}
б. Использование молчаливого уведомления: Когда приложение получило бесшумное удаленное уведомление, метод обратного вызова, полученный удаленным уведомлением, вызвал без звука и предупреждения. Вы можете выполнить код для удаления локального уведомления.