只有在激活应用程序时才会弹出Toast通知

时间:2013-05-13 13:20:09

标签: c# javascript windows-8 windows-runtime windows-store-apps

我的吐司通知有这个问题,我的应用只有在激活时才会显示吐司通知(即:当我使用它时)。

以下是我的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,如果您为后台任务提供了一个很好的简单资源,我将非常感激。

2 个答案:

答案 0 :(得分:2)

我认为你正在努力做到这一点比你需要的更难:)如果你使用scheduled notifications它会起作用,你也不需要任何后台任务。

如果您确实希望使用后台任务,那么Introduction to Background Tasks白皮书可能会有所帮助。

答案 1 :(得分:1)

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