只有当应用程序被激活时,吐司通知才会弹出
本文关键字:通知 吐司 应用程序 激活 | 更新日期: 2023-09-27 18:13:14
我有这个问题与吐司通知,我的应用程序显示吐司通知只有当它被激活(即:当我使用它)。
下面是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));
}
我的应用程序只是一个提醒应用程序,用户设置时间和文本,当它的时间应用程序将显示吐司通知的文本。我只是使用一个循环计时器,每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,并在我的声明中添加了类型为:Timer和System Event的后台任务。
解决方案可能是不允许应用程序休眠或暂停,但我不知道如何阻止应用程序暂停。另一个解决方案是后台任务,如果你能给我一个简单的后台任务资源,我将不胜感激。
我认为你让这比它需要的更困难:)如果你使用预定通知,它就会工作,你不需要任何后台任务。
如果你想处理后台任务,可以参考《后台任务介绍》白皮书。
根据您共享的细节和代码,您应该查看ScheduledToastNotification
类。Windows将在指定时间显示一个应用程序的计划祝酒,即使该应用程序未运行或挂起。