2017-01-13 3 views

Antwort

0

Es gibt 3 Optionen, um lokale Benachrichtigungen zu entfernen.

1. Wenn App im Vordergrund ist: - Wenn App im Vordergrund ist, überprüfen Sie die lokale Gerätezeit und entfernen Sie alle ausstehenden lokalen Benachrichtigungen.

UNUserNotificationCenter.Current.RemoveAllPendingNotificationRequests(); 

2. Wenn App im Hintergrund ist: Sie können keinen Code in bestimmten Zeit auszuführen, wenn die App im Hintergrund ist. Es gibt zwei Ansätze, um lokale Benachrichtigungen zu bestimmten Zeiten zu entfernen. Es ist jedoch das Betriebssystem, das entscheidet, ob die Rückrufmethoden abhängig von den verfügbaren Ressourcen, dem Batterieprozentsatz, dem Ladezustand des Geräts usw. anrufen sollen.

a. Hintergrundabruf - Aktivieren Sie die Hintergrundabruffunktion, die die Rückrufmethode nach einer bestimmten Zeit aufruft, wenn sich das Gerät im Hintergrund befindet. Auch hier entscheidet das Betriebssystem, wann es aufgerufen wird, abhängig von der Nutzung der App.

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


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

b. Verwenden der unbeaufsichtigten Benachrichtigung: Wenn die App eine unbeaufsichtigte Remotebenachrichtigung empfangen hat, wurde die Remotemeldung empfangene Rückrufmethode ohne Ton und Warnung aufgerufen. Sie können Code zum Entfernen der lokalen Benachrichtigung ausführen.

Verwandte Themen