Freigeben über


Planen einer app Benachrichtigung

Sie können eine app-Benachrichtigung planen, die zu einem späteren Zeitpunkt angezeigt wird, unabhängig davon, ob app zu diesem Zeitpunkt läuft. Dies ist nützlich für Szenarien wie das Anzeigen von Erinnerungen oder andere Nachverfolgungsaufgaben für den Benutzer, bei denen die Zeit und der Inhalt der Benachrichtigung vorab bekannt sind.

app Geplante Benachrichtigungen haben ein Übermittlungsfenster von 5 Minuten. Wenn der Computer während der geplanten Zustellungszeit deaktiviert ist und länger als 5 Minuten deaktiviert bleibt, wird die Benachrichtigung "gelöscht", da sie für den Benutzer nicht mehr relevant ist. Wenn Sie eine garantierte Zustellung von Benachrichtigungen benötigen, unabhängig davon, wie lange der Computer ausgeschaltet wurde, empfehlen wir die Verwendung einer Hintergrundaufgabe mit einem Zeitauslöser. Weitere Informationen finden Sie unter "Hintergrundaufgaben".

Weitere Informationen zu app Benachrichtigungen finden Sie inApp der Übersicht über Benachrichtigungen.

Hinweis

In den Codebeispielen in diesem Artikel wird der Namespace Microsoft.Windows.AppNotifications zum Erstellen von Benachrichtigungsinhalten und zum Planen des Namespaces Windows.UI.Notifications verwendet. Diese beiden Namespaces können zusammen in demselben appverwendet werden.

Benachrichtigung planen

Um eine Benachrichtigung für eine zukünftige Zeit zu planen, verwenden Sie AppNotificationBuilder, um den Benachrichtigungsinhalt zu definieren, rufen Sie dann AddToSchedule mit einem ScheduledToastNotification auf. Im folgenden Beispiel wird eine Benachrichtigung so geplant, dass sie ab jetzt 10 Sekunden angezeigt wird.

using Microsoft.Windows.AppNotifications.Builder;
using Windows.UI.Notifications;
using Windows.Data.Xml.Dom;

var payload = new AppNotificationBuilder()
    .AddArgument("action", "viewItemsDueToday")
    .AddText("ASTR 170B1")
    .AddText("You have 3 items due today!")
    .BuildNotification()
    .Payload;

var doc = new XmlDocument();
doc.LoadXml(payload);

var scheduledNotification = new ScheduledToastNotification(doc, DateTimeOffset.Now.AddSeconds(10));
scheduledNotification.Tag = "18365";
scheduledNotification.Group = "ASTR 170B1";

ToastNotificationManager.CreateToastNotifier().AddToSchedule(scheduledNotification);

Die Eigenschaften "Tag " und "Group " dienen als zusammengesetzter Primärschlüssel für die Benachrichtigung. Wenn Sie diese Werte festlegen, können Sie die geplante Benachrichtigung später abbrechen oder ersetzen, wie im nächsten Abschnitt gezeigt.

Geplante Benachrichtigungen abbrechen

Um eine geplante Benachrichtigung abzubrechen, rufen Sie GetScheduledToastNotifications auf, um die Liste der ausstehenden Benachrichtigungen abzurufen, und rufen Sie dann RemoveFromSchedule für die Benachrichtigung auf, die dem zuvor angegebenen Tag entspricht.

var notifier = ToastNotificationManager.CreateToastNotifier();
var scheduled = notifier.GetScheduledToastNotifications();

foreach (var notification in scheduled)
{
    if (notification.Tag == "18365")
    {
        notifier.RemoveFromSchedule(notification);
    }
}

Siehe auch