2015-10-02 2 views
6

Ich herausgefunden TimeTrigger ist der Weg für die geplante Hintergrundaufgabe auf Windows 10 (UWP). Es sieht jedoch so aus, als ob die Mindestanzahl, die wir geben müssen, 15 Minuten beträgt. Wenn Sie sich fragen, wie der Alarm und die Erinnerungen für Windows 10 funktionieren, planen wir sogar, dass er für die nächste 1 Minute läuft.TimeTrigger/Scheduler in Windows 10 (UWP) für weniger als 15 Minuten

Ich suche nach einer Lösung, die eine Aufgabe in einer bestimmten Zeit auslösen soll, die weniger als 15 Minuten umfassen.

Kann jemand etwas Licht darauf werfen?

+0

Alarm und Erinnerungen sind unterschiedlich. Sie brauchen nicht 'TimeTrigger' für sie. http://stackoverflow.com/questions/31740884/can-i-create-an-alarm-app-for-window-universal-app –

+0

Ich ging durch den Beispiel-Code auf Github und stellte fest, dass der Alarm und andere Toasts angezeigt werden basierend auf dem Knopf klicken. Weißt du, wie das an einen Timer angeschlossen werden kann, der funktioniert, selbst wenn die Vordergrund-App nicht läuft? Ich bin mir nicht sicher, wie es zur geplanten Zeit läuft. Ist das getan von "ToastNotificationManager.CreateToastNotifier(). AddToSchedule" wie Jeffrey darauf hingewiesen? Irgendein Code dafür auf Github Windows 10 Proben? –

+0

Gibt es eine Idee, wie Sie einen Codeblock auf diese Weise planen (weniger als 15 Minuten, basierend auf der Zeit, die der Benutzer auswählt)? –

Antwort

4

Der Wecker & Clock-Anwendung verwendet die geplante Toast-Benachrichtigung statt Hintergrundaufgabe.

enter image description here

Hier ist der Beispielcode einen Toast in 10 Sekunden zu planen.

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

Ich verstehe. Wird das also im Hintergrund laufen? Würde AddToSchedule ausgeführt werden, selbst die Vordergrund-App läuft nicht? Gibt es eine Möglichkeit, einen Code in weniger als 10 Minuten auszuführen? –

+0

Gibt es eine Idee, wie ein Code auf diese Weise geplant wird (weniger als 15 Minuten basierend auf der Zeit, die der Benutzer auswählt)? –

+0

Das beantwortet meine Frage zu Alarm und dessen Timing. Markierung als Antwort. –