0

我对 toast 通知有这个问题,我的应用程序仅在激活时才显示 toast 通知(即:当我使用它时)。

这是我的 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,并且还在我的声明中添加了以下类型的后台任务:计时器和系统事件。

解决方案可能是不允许应用程序休眠或挂起,但我不知道如何阻止应用程序挂起。另一个解决方案可能是后台任务,如果你给我一个很好的简单的后台任务资源,我将不胜感激。

4

2 回答 2

2

我认为你让这比它需要的更难:) 如果你使用预定的通知,它就可以工作,你不需要任何后台任务。

如果您确实想使用后台任务,可以参考“后台任务简介”白皮书可能会有所帮助。

于 2013-05-13T14:00:28.237 回答
1

根据您共享的详细信息和代码,您应该查看该ScheduledToastNotification课程。Windows 将在指定时间显示应用程序的预定 Toast,即使该应用程序未运行或已挂起。

于 2013-05-13T14:00:21.160 回答