2013-01-04 72 views
1

我正在使用計時器創建應用程序。我想顯示一個敬酒通知(或某種通知),如果該人離開應用程序,以便他們知道計時器已結束。我使用「.FromSeconds」的「PeriodicTask」,但它似乎沒有在指定的時間觸發它。Windows Phone Toast通知在指定時間不會觸發

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"); 
    } 

似乎一切正常解僱,因爲我得到的通知,但我完全不明白預期的時間。

任何幫助,將不勝感激。

+0

你什麼時候得到它?延遲還是更快? –

+0

第一次,它應該是1分鐘,並在30秒後(如此1.5分鐘)發射,第二次我將其設置爲30秒,並在大約10秒內發射......所以沒有真正的模式。 – HarryM

回答

2

我覺得你的時間設置爲運行PeriodicTask只是一個操作系統的提示,但這並不意味着它會觸發它究竟是在那個時候。

+0

但是如何在準確的時間運行任務? –

3

您的應用程序是否在前臺運行?如果是這樣,ShellToast將不會顯示。您的應用必須在後臺才能顯示。瞭解更多關於這一點,潛在的解決方法我的其他@How can I create a shelltoast?

+0

嗨賈斯汀,應用程序沒有在前臺運行。吐司實際上出現了,但並沒有在預期的時間。我試着在一分鐘內開火烤麪包,而且它在開火時並不一致。 – HarryM

+1

要添加到此項,ShellToast不會在您鎖定屏幕時觸發。 –

相關問題