Il Ciclo di Vita Fast Application Switching e Fast Resume

575 views

Published on

Le applicazioni mobile nascono in un contesto differente da quello del software tradizionale e devono, perciò, tenere conto di una serie di fattori molto importanti come il consumo di batteria, le performance, ecc. In questo webinar sarà approfondito il ciclo di vita delle applicazioni Microsoft Windows Phone e come sfruttare due delle caratteristiche peculiari della piattaforma, il Fast Application Switching e il Fast Resume, che consentono di offrire all'utente la migliore esperienza d'uso possibile. / Because mobile applications operate in a different context from that of traditional software, they must take into account important factors such as battery consumption and performance. This webinar will detail the life cycle of Microsoft Windows Phone applications and how to leverage two features of the platform — Fast Application Switching and Fast Resume — enabling your apps to offer users the best experience possible

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
575
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Il Ciclo di Vita Fast Application Switching e Fast Resume

  1. 1. IL CICLO DI VITA: FAST APPLICATION SWITCHING E FAST RESUME Dan Ardelean Nokia Developer Champion dan@xpresscode.eu Twitter: @danardelean NOKIA WEBINAR
  2. 2. Stack di navigazione Launching & Closing Dormant & Tombstoned Dizionari di stato Fast Application Resume Obscured & Unobscured Async & await AGENDA
  3. 3. • Modello di navigazionePage-Based • Per implementare questo modello di navigazione ogni applicazione ha uno «Back Stack» • Navigazioneversouna nuovapaginala vecchiavieneinseritain Back Stack • Quandoviene premutoil tasto Back o chiamatoil metodoGoBack l’applicazioneritorna alla primapaginadentroBack Stack • Se Back Stack è vuotoquandosi navigaindietrol’applicazioneviene chiusa LE BASI
  4. 4. • Possiamo manualmente rimuovere elementi dallo stack • Non possiamo manualmente aggiungere elementi • Le pagine possono essere notificatese vengono rimosse dallo stack STACK DI NAVIGAZIONE private void PurgeBackStackButton_Click(object sender, RoutedEventArgs e) { while (NavigationService.CanGoBack) NavigationService.RemoveBackEntry(); } protected override void OnRemovedFromJournal(JournalEntryRemovedEventArgs e) { base.OnRemovedFromJournal(e); }
  5. 5. Not running Running Launching LANCIO APPLICAZIONE
  6. 6. Not running Running Launching Closing Deactivating Dormant Exit Application_Closing Deactivate Application_Deactivate d Dormant CHIUSURA & DISATTIVAZIONE
  7. 7. Istanza in memoria Stato applicazione, data e oggetti non vengono modificati Deve essere pronta per essere chiusa DORMANT Not running Running LaunchingClosing DeactivatingActivating Dormant
  8. 8. AttivaDormantTombstoned
  9. 9. Tombstoned Not running Running LaunchingClosing DeactivatingActivating Dormant Da Dormant a Tombstone «memory based» Salva i dizionari di stato e lo stack di navigazione Bisogna ricaricare i dati TOMBSTONED
  10. 10. Tombstoned Not running Running LaunchingClosing DeactivatingActivating Dormant TOMBSTONED O DORMANT? private void Application_Activated(object sender, ActivatedEventArgs e) { if (e.IsApplicationInstancePreserved) { // Dormant } else { // Tombstoned } }
  11. 11. Riattiva l’istanza dormant se l’utente lancia una nuova istanza Necessario per le applicazioni che fanno tracking della posizionee non solo FAST APPLICATION RESUME Tombstoned Not running Running LaunchingClosing DeactivatingActivating Dormant
  12. 12. TERMINAZIONE NORMALE M O O O
  13. 13. DORMANT O O O IsApplicationInstancePreserved ==true
  14. 14. TOMBSTONED O O IsApplicationInstancePreserve d ==false M O
  15. 15. TOMBSTONED O O O o O
  16. 16. • 3 Dizionari • Pagina: PhoneApplicationPage.State • Istanzaapp PhoneApplicationService.Current.State • Applicazione System.IO.IsolatedStorage.IsolatedStorageSettings.ApplicationSettings STATO APPLICAZIONE
  17. 17. MANAGEMENT DELLE RISORSE O O MediaPlayer.Pause MediaElement.Pause VibrateController.Stop Photocamera.Dispose
  18. 18. MANAGEMENT DELLE RISORSE O Socket rimangano scollegati MediaElement non connesso Photocamera disposed
  19. 19. • Riattiva l’istanza Dormant, se esiste, quando l’utente lancia nuovamente l’applicazione • Per abilitare la funzionalità bisogna modificare PropertiesWMAppManifest.xml FAST APPLICATION RESUME <Tasks> <DefaultTask Name ="_default" NavigationPage="MainPage.xaml" ActivationPolicy="Resume"> </Tasks>
  20. 20. • Quando l’interfaccia utente viene oscurata: notifiche toast, lockscreen, chiamata in arrivo • L’applicazionecontinua girare in background • Per far girare l’applicazione dietro Lockscreen • Per disabilitareil Lockscreen OBSCURED & UNOBSCURED PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled; PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
  21. 21. • Cosa succede quando usiamo async e await per Application_Closing e Application_Deactivate? • Meccanismo per applicazioni Windows Store ASYNC E AWAIT var deferral = e.SuspendingOperation.GetDeferral(); //TODO: Save application state and stop any background activity. await ExecuteAsync(); deferral.Complete();
  22. 22. 10/1/2013© 2013 Nokia. All rights reserved. © 2013 Microsoft. All rights reserved. Grazie! Blog: sviluppomobile.blogspot.com Email: dan@xpresscode.eu Twitter: @danardelean

×