我的吐司通知有这个问题,我的应用只有在激活时才会显示吐司通知(即:当我使用它时)。
以下是我的Toast通知代码:
private void ShowToastNotification(string text)
{
var xml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01);
xml.GetElementsByTagName("text")[0].AppendChild(xml.CreateTextNode(text));
ToastNotificationManager.CreateToastNotifier().Show(new ToastNotification(xml));
}
我的应用程序只是一个提醒应用程序,用户设置的时间和文本以及应用程序何时显示该文本的Toast通知。 我只是使用一个循环计时器,每隔5秒检查一次提醒。
public MainPage()
{
this.InitializeComponent();
DispatcherTimer d = new DispatcherTimer();
d.Interval = new TimeSpan(0,0,5);
d.Start();
d.Tick += delegate
{
CHECK();
};
}
private void CHECK()
{
foreach (REMINDER_CLASS er in REMINDERS)
{
if (DateTime.Now.ToString("MM/dd/yyyy hh:mm:tt") == er.DateTime)
{
ShowToastNotification(er.Reminder);
break;
}
}
}
所以当时间到来时它没有显示Toast通知,当我点击它显示通知的应用程序时,就像它被暂停一样,当我打开它时它恢复了。
顺便说一句,我在我的appxmanifest中将Toast功能设置为yes,并在我的声明中添加了类型的BackGround任务:Timer和System Event。
解决方案可能是不允许应用程序休眠或暂停,但我不知道如何阻止应用程序暂停。 另一个解决方案可能是BackGround Tasks,如果您为后台任务提供了一个很好的简单资源,我将非常感激。
答案 0 :(得分:2)
我认为你正在努力做到这一点比你需要的更难:)如果你使用scheduled notifications它会起作用,你也不需要任何后台任务。
如果您确实希望使用后台任务,那么Introduction to Background Tasks白皮书可能会有所帮助。
答案 1 :(得分:1)
根据您分享的详细信息和代码,您应该查看ScheduledToastNotification
课程。 Windows将在指定时间显示应用程序的预定祝酒词,即使应用程序未运行或已暂停。