Windows Phone Toast通知未在指定时间触发

时间:2013-01-04 20:21:57

标签: windows-phone-7 windows-phone windows-phone-8

我正在创建一个带有计时器的应用程序。如果此人离开应用程序以便他们知道计时器结束,我想显示一个Toast通知(或某种通知)。我使用“.FromSeconds”使用了“PeriodicTask”,但它似乎没有在指定的时间触发它。

   PeriodicTask periodicTask = new PeriodicTask("TaskTest");
     periodicTask.Description = "Task";
     try
     {
         IsolatedStorageSettings.ApplicationSettings["TimerForSchedule"] = TimeNum;
         ScheduledActionService.Add(periodicTask);
         ScheduledActionService.LaunchForTest("TaskTest", TimeSpan.FromSeconds(((TimeNum*60)))); 
     }

在计划代理项目的“OnInvoke”方法中,我有以下内容:

protected override void OnInvoke(ScheduledTask task)
    {
        if (task.Name == "TaskTest")
        {

            int time = Convert.ToInt32(IsolatedStorageSettings.ApplicationSettings["TimerForSchedule"]);
            bool periodic = (bool)(task is PeriodicTask);
            ShellToast toast = new ShellToast();
            toast.Title = "Done";
            toast.Content = "Timer is over";
            toast.Show();
        }
        NotifyComplete();
        ScheduledActionService.Remove("TaskTest");
    }

因为我收到了通知,所有内容似乎都正常启动,但我没有在预期的时间内获得通知。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:3)

您的应用是否在前台运行?如果是这样,ShellToast将不会出现。您的应用必须在后台才能显示。在我的另一个@ How can I create a shelltoast?

中详细了解该问题和潜在的解决方法

答案 1 :(得分:2)

我认为你设置运行PeriodicTask的时间只是操作系统的一个提示,但这并不意味着它会在那时准确地触发它。