Schemalägga ett app meddelande

Du kan schemalägga ett app meddelande så att det visas vid ett senare tillfälle, oavsett om ditt app körs vid den tidpunkten. Detta är användbart för scenarier som att visa påminnelser eller andra uppföljningsuppgifter för användaren, där tid och innehåll i meddelandet är känt i förväg.

Schemalagda app meddelanden har ett leveransfönster på 5 minuter. Om datorn är avstängd under den schemalagda leveranstiden och förblir avstängd i mer än 5 minuter kommer meddelandet att "tas bort" eftersom det inte längre är relevant för användaren. Om du behöver garanterad leverans av meddelanden oavsett hur länge datorn var avstängd rekommenderar vi att du använder en bakgrundsaktivitet med en tidsutlösare. Mer information finns i Bakgrundsaktiviteter.

Mer information om app-meddelanden finns i översikten App för meddelanden.

Anmärkning

Kodexemplen i den här artikeln använder namnområdet Microsoft.Windows.AppNotifications för att skapa meddelandeinnehåll och namnområdet Windows.UI.Notifications för schemaläggning. Dessa två namnområden kan användas tillsammans i samma app.

Schemalägg meddelandet

Om du vill schemalägga ett meddelande för en framtida tid använder du AppNotificationBuilder för att definiera meddelandeinnehållet. anropa sedan AddToSchedule med en ScheduledToastNotification. I följande exempel schemaläggs ett meddelande så att det visas om 10 sekunder.

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

Egenskaperna Tagg och grupp fungerar som en sammansatt primärnyckel för meddelandet. Om du anger dessa värden kan du avbryta eller ersätta det schemalagda meddelandet senare, som du ser i nästa avsnitt.

Avbryt schemalagda meddelanden

Om du vill avbryta ett schemalagt meddelande anropar du GetScheduledToastNotifications för att hämta listan över väntande meddelanden och anropar sedan RemoveFromSchedule på den som matchar taggen du angav tidigare.

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

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

Se även