2015-10-02 12 views
6

Wyobrażałem sobie, używając TimeTrigger jest sposobem na zaplanowane zadanie w tle na Windows 10 (UWP). Wygląda jednak na to, że minimalna liczba, którą musimy podać to 15 minut. Zastanawiam się, jak działają alarmy i przypomnienia dla systemu Windows 10, nawet jeśli planujemy uruchomienie na następną minutę.TimeTrigger/Scheduler w systemie Windows 10 (UWP) przez mniej niż 15 minut

Szukam rozwiązania, które powinno uruchomić zadanie w określonym czasie, który obejmuje mniej niż 15 minut.

Czy ktoś może rzucić trochę światła na to?

+0

Alarmy i przypomnienia są różne. Nie potrzebujesz dla nich "TimeTrigger". http://stackoverflow.com/questions/31740884/can-i-create-an-alarm-app-for-window-universal-app –

+0

Przeszedłem przez próbny kod na Github i odkryłem, że Alarm i inne toasty są pokazane na podstawie kliknięcia przycisku. Czy wiesz, w jaki sposób można to podłączyć do licznika czasu, który działa, nawet aplikacja Foreground nie działa? Nie jestem pewien, jak działa w zaplanowanym czasie. Czy to zrobione przez "ToastNotificationManager.CreateToastNotifier(). AddToSchedule" jak wskazał Jeffrey? Jakiś kod do tego na próbkach Github Windows 10? –

+0

Każdy pomysł, jak zaplanować uruchamianie bloku kodu w podobny sposób (może być krótszy niż 15 minut, w zależności od czasu wybranego przez użytkownika)? –

Odpowiedz

4

Aplikacja z zegarem korzystała z funkcji Zaplanowane powiadomienie o tostach, a nie z zadania w tle.

enter image description here

tutaj przykładowy kod zaplanować tosty 10 sekund.

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

Rozumiem. Czy to będzie działać w tle? Czy w AddToSchedule uruchomiona jest nawet aplikacja do pierwszego planu? Czy jest jakiś sposób, aby wykonać blok kodu w mniej niż 10 minut? –

+0

Każdy pomysł, jak zaplanować uruchamianie bloku kodu w podobny sposób (może być krótszy niż 15 minut, w zależności od czasu wybranego przez użytkownika)? –

+0

To faktycznie odpowiada na moje pytanie dotyczące alarmu i jego czasu. Oznaczanie jako odpowiedź. –

Powiązane problemy