1

我正在创建一个带有计时器的应用程序。如果此人离开应用程序,我想显示一个 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");
    }

一切似乎都能正常触发,因为我确实收到了通知,但我没有在预期的时间收到通知。

任何帮助,将不胜感激。

4

2 回答 2

3

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

于 2013-01-05T00:56:37.890 回答
2

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

于 2013-01-05T23:15:45.683 回答