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
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Creare una libreria CSS universale: i bottoni
.NET Aspire per applicazioni distribuite
Applicare un filtro per recuperare alcune issue di GitHub
Utilizzare Container Queries nominali
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Utilizzare Containers in .NET Aspire
Utilizzare DeepSeek R1 con Azure AI
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Eseguire una ricerca avanzata per recuperare le issue di GitHub