これはバックグラウンド タスク コードで、REST クライアントを使用して生の通知を送信しました。
public sealed class Class2:IBackgroundTask
{
public void Run(IBackgroundTaskInstance taskInstance)
{
var def = taskInstance.GetDeferral();
RawNotification notification = (RawNotification)taskInstance.TriggerDetails;
string content = notification.Content;
ToastTemplateType toastTemplate = ToastTemplateType.ToastText02;
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate);
XmlNodeList textElements = toastXml.GetElementsByTagName("text");
textElements[0].AppendChild(toastXml.CreateTextNode("You have pending items to sync"));
textElements[1].AppendChild(toastXml.CreateTextNode("Please open the app to sync"));
ToastNotificationManager.CreateToastNotifier().Show(new ToastNotification(toastXml));
def.Complete();
// ...
// Insert code to start one or more asynchronous methods using the "await" keyword.
// var result = await ExampleMethodAsync();
// ...
// _deferral.Complete();
}
}
データは、次の図のように REST クライアントを使用して送信されます。
この生の通知を送信すると、アプリがクラッシュします。ただし、トースト通知を送信する場合、アプリは通知を表示しており、アプリを閉じるとバックグラウンド タスクがトリガーされません。
アプリがクラッシュし、バックグラウンド タスクがトリガーされない理由を誰か説明してもらえますか?