2015-10-02 25 views
6

Ho capito che utilizzare TimeTrigger è la via per l'attività in background pianificata su Windows 10 (UWP). Comunque sembra che il numero minimo che dobbiamo dare sia 15 minuti. Mi chiedo solo come funziona la sveglia e i promemoria per Windows 10, anche se pianifichiamo che funzioni per il prossimo 1 minuto.TimeTrigger/Scheduler in Windows 10 (UWP) per meno di 15 minuti

Sto cercando una soluzione che dovrebbe attivare un'attività in un momento specifico che include meno di 15 minuti.

Qualcuno può far luce su questo?

+0

Allarme e promemoria sono diversi. Non hai bisogno di 'TimeTrigger' per loro. http://stackoverflow.com/questions/31740884/can-i-create-an-alarm-app-for-window-universal-app –

+0

Ho passato il codice di esempio su Github e ho scoperto che l'allarme e altri toast sono mostrati in base al clic del pulsante. Sai come può essere collegato a un timer che funziona anche se l'app in primo piano non è in esecuzione? Non sono sicuro, come funziona in orari prestabiliti. È fatto da "ToastNotificationManager.CreateToastNotifier(). AddToSchedule" come ha sottolineato Jeffrey? Qualche codice per quello sugli esempi di Github per Windows 10? –

+0

Qualche idea su come pianificare-eseguire un blocco di codice in questo modo simile (può essere inferiore a 15 minuti, in base all'ora selezionata dall'utente)? –

risposta

4

L'applicazione di allarme & Clock utilizzava Notifica di pianificazione programmata anziché attività in background.

enter image description here

Ecco il codice di esempio per programmare un brindisi in 10 secondi.

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

Capisco. Quindi, funzionerà sullo sfondo? AddToSchedule funzionerebbe anche se l'app in primo piano non è in esecuzione? C'è un modo per eseguire un blocco di codice in meno di 10 minuti? –

+0

Qualche idea su come pianificare-eseguire un blocco di codice in questo modo simile (può essere inferiore a 15 minuti, in base all'ora selezionata dall'utente)? –

+0

Questo in realtà risponde alla mia domanda su Allarme e il suo tempismo. Contrassegnare come risposta. –