只有当应用程序被激活时,吐司通知才会弹出

本文关键字:通知 吐司 应用程序 激活 | 更新日期: 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将在指定时间显示一个应用程序的计划祝酒,即使该应用程序未运行或挂起。