2015-10-02 79 views
6

我想通過使用TimeTrigger是Windows 10(UWP)上預定後臺任務的方式。然而,它看起來像我們需要提供的最少數量是15分鐘。只是想知道,即使我們安排它運行下一分鐘,警報和提醒如何在Windows 10上運行。Windows 10(UWP)中的TimeTrigger/Scheduler少於15分鐘

我正在尋找一種解決方案,該解決方案應該在特定時間內觸發任務,其中包括少於15分鐘的時間。

任何人都可以對此有所瞭解嗎?

+0

報警和提醒是不同的。你不需要'TimeTrigger'。 http://stackoverflow.com/questions/31740884/can-i-create-an-alarm-app-for-window-universal-app –

+0

我通過Github上的示例代碼,發現鬧鐘和其他吐司顯示基於按鈕點擊。你知道這是如何連接到一個即使前臺應用程序沒有運行的計時器嗎?我不確定,它是如何在預定時間運行的。這是由傑弗裏指出的「ToastNotificationManager.CreateToastNotifier()。AddToSchedule」完成的嗎? Github Windows 10樣本上的任何代碼? –

+0

有關如何以類似的方式計劃運行代碼塊的任何想法(可能少於15分鐘,基於用戶選擇的時間)? –

回答

4

鬧鐘&時鐘應用程序使用預定的Toast通知而不是後臺任務。

enter image description here

下面是示例代碼在10秒內以安排一個烤麪包。

namespace UWPApp 
{ 
    /// <summary> 
    /// An empty page that can be used on its own or navigated to within a Frame. 
    /// </summary> 
    public sealed partial class MainPage : Page 
    { 
     private Random random = new Random((int)DateTime.Now.Ticks); 

     const string TOAST = @" 
<toast> 
    <visual> 
    <binding template=""ToastGeneric""> 
     <text>Sample</text> 
     <text>This is a simple toast notification example</text> 
     <image placement = ""AppLogoOverride"" src=""oneAlarm.png"" /> 
    </binding> 
    </visual> 
    <actions> 
    <action content = ""check"" arguments=""check"" imageUri=""check.png"" /> 
    <action content = ""cancel"" arguments=""cancel""/> 
    </actions> 
    <audio src =""ms-winsoundevent:Notification.Reminder""/> 
</toast>"; 


     public MainPage() 
     { 
      this.InitializeComponent(); 
     } 

     private void Button_Click(object sender, RoutedEventArgs e) 
     { 
      var when = DateTime.Now.AddSeconds(10); 

      var offset = new DateTimeOffset(when); 

      Windows.Data.Xml.Dom.XmlDocument xml = new Windows.Data.Xml.Dom.XmlDocument(); 

      xml.LoadXml(TOAST); 

      ScheduledToastNotification toast = new ScheduledToastNotification(xml, offset); 

      toast.Id = random.Next(1, 100000000).ToString(); 

      ToastNotificationManager.CreateToastNotifier().AddToSchedule(toast); 
     } 
    } 
} 
+0

我明白了。那麼,這是否會在後臺運行?即使前臺應用沒有運行,AddToSchedule會運行嗎?有什麼方法可以在不到10分鐘的時間內執行一段代碼? –

+0

關於如何以類似的方式計劃運行代碼塊(基於用戶選擇的時間,可能少於15分鐘)的任何想法? –

+0

這實際上回答了我關於鬧鐘及其時間的問題。標記爲答案。 –