Le applicazioni Windows Phone non possono girare in background, ma possiamo sfruttare dei task periodici per eseguire operazioni ad intervalli.
se il nostro intento è semplicemente quello di avvisare l'utente di una particolare scadenza, Windows Phone 7.1 ci consente di sfruttare delle classi ad hoc.
Lo script di oggi è dedicato alla creazione di un reminder, cioè di notifiche che ricordano a tutti gli effetti quelle che si ricevono attraverso il calendario, ma che sono personalizzate in ogni aspetto.
Il codice per creare una notifica è il seguente:
string reminderId = "MyReminder"; Reminder reminder = ScheduledActionService.Find(reminderId) as Reminder; // se esiste già, dobbiamo rimuoverlo if (reminder != null) ScheduledActionService.Remove(reminderId); // creiamo il nuovo reminder reminder = new Reminder(reminderId); reminder.BeginTime = DateTime.Now.AddSeconds(5); reminder.ExpirationTime = DateTime.Now.AddHours(1); reminder.RecurrenceType = RecurrenceInterval.None; reminder.Content = "Reminder!"; reminder.Title = "Titolo"; reminder.NavigationUri = new Uri("/Task.xaml", UriKind.Relative); ScheduledActionService.Add(reminder);
Le proprietà parlano da sole. In particolare, attraverso NavigationUri possiamo speficare l'azione associata al click sul reminder.
In questo caso si aprirà la nostra applicazione e saremo portati alla pagina /Task.xaml.
In questo caso, occorrerà andare a leggere i valori inviati (Title e Content), con un pezzo di codice com questo:
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); string p1= string.Empty; string p2 = string.Empty; NavigationContext.QueryString.TryGetValue("param1", out p1); NavigationContext.QueryString.TryGetValue("param2", out p2 ); //... }
L'effetto del reminder è quello mostrato in figura, perfettamente in linea con quelli di sistema:

Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Effettuare il pull di git LFS in un workflow di GitHub
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
Pubblicare un pacchetto di NuGet nel feed di GitHub
Utilizzare la libreria Benchmark.NET per misurare le performance
Copiare automaticamente le secret tra più repository di GitHub
Cache policy su route groups di Minimal API in ASP.NET Core 7
Gestire tipi complessi in query string grazie a IParsable in ASP.NET Core 7.0
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
Utilizzare la parola chiave nameof per referenziare i nomi dei parametri di un metodo in C#
Usare le variabili per personalizzare gli stili CSS
Sfruttare la local cache del browser tramite gli ETag in ASP.NET Core
Utilizzo di Map e Object in Javascript