app Planowanie powiadomienia

Możesz zaplanować, aby app powiadomienie pojawiło się w późniejszym czasie, niezależnie od tego, czy app jest uruchomiony w tym czasie. Jest to przydatne w przypadku scenariuszy, takich jak wyświetlanie przypomnień lub innych zadań podrzędnych dla użytkownika, w których czas i zawartość powiadomienia są znane z wyprzedzeniem.

Zaplanowane powiadomienia mają 5-minutowe okno dostarczania. Jeśli komputer jest wyłączony w zaplanowanym czasie dostawy i pozostaje wyłączony przez dłużej niż 5 minut, powiadomienie zostanie "usunięte", ponieważ nie będzie już istotne dla użytkownika. Jeśli potrzebujesz gwarantowanego dostarczania powiadomień niezależnie od czasu wyłączenia komputera, zalecamy użycie zadania w tle z wyzwalaczem czasu. Aby uzyskać więcej informacji, zobacz Zadania w tle.

Aby uzyskać więcej informacji na temat app powiadomień, zobacz App omówienie powiadomień.

Uwaga / Notatka

Przykłady kodu w tym artykule używają przestrzeni nazw Microsoft.Windows.AppNotifications do tworzenia zawartości powiadomień oraz przestrzeni nazw Windows.UI.Notifications do planowania. Te dwie przestrzenie nazw mogą być używane razem w tym samym app.

Planowanie powiadomienia

Aby zaplanować powiadomienie w przyszłości, użyj polecenia AppNotificationBuilder aby zdefiniować zawartość powiadomienia, następnie wywołaj AddToSchedule z ScheduledToastNotification. W poniższym przykładzie ustawiono powiadomienie, które pojawi się za 10 sekund.

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);

Właściwości Tag i Grupa działają jako złożony klucz podstawowy powiadomienia. Ustawienie tych wartości umożliwia anulowanie lub zastąpienie zaplanowanego powiadomienia później, jak pokazano w następnej sekcji.

Anulowanie zaplanowanych powiadomień

Aby anulować zaplanowane powiadomienie, wywołaj metodę GetScheduledToastNotifications , aby pobrać listę oczekujących powiadomień, a następnie wywołaj metodę RemoveFromSchedule na tym pasującym do określonego wcześniej tagu.

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

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

Zobacz także