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
Disabilitare automaticamente un workflow di GitHub (parte 2)
Rendere le variabili read-only in una pipeline di Azure DevOps
Introduzione ai web component HTML
Creare una libreria CSS universale: Clip-path
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Escludere alcuni file da GitHub Secret Scanning
Selettore CSS :has() e i suoi casi d'uso avanzati
Gestire il colore CSS con HWB
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Documentare i servizi REST con Swagger e OpenAPI con .NET 9
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Collegare applicazioni server e client con .NET Aspire