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
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Triggerare una pipeline su un altro repository di Azure DevOps
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Implementare l'infinite scroll con QuickGrid in Blazor Server
Utilizzare un service principal per accedere a Azure Container Registry
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Testare l'invio dei messaggi con Event Hubs Data Explorer
Generare token per autenicarsi sulle API di GitHub
Usare lo spread operator con i collection initializer in C#
Gestione degli stili CSS con le regole @layer