This project is read-only.
1
Vote

Auto-sospensione dell'applicazione

description

Se il giocatore preme il tasto back del cellulare, senza che possiamo farci nulla l'applicazione verrá sospesa e dopo un po' potrebbe venire chiusa forzatamente, previo l'invio di un messaggio che ci consente di salvare lo stato.
 
Collegare tale meccanismo di sospensione/ripresa al sistema di salvataggi, in modo che la partita non sia mai persa.

comments

gperoni wrote Aug 4, 2010 at 11:22 AM

Riporto le mail di Giuseppe del 21 luglio, per futura consultazione.

La faccenda del pulsante Back è documentata qui:
http://msdn.microsoft.com/en-us/library/ff817008(v=VS.92).aspx
nella parte che parla di deactivation/activation...

La classe pertinente è la classe:
PhoneApplicationService
e i suoi eventi Activated e Deactivated:
http://msdn.microsoft.com/en-us/library/microsoft.phone.shell.phoneapplicationservice_events(v=VS.92).aspx

provate a fare una mini-applicazione di supporto per il testing!

wrote Aug 6, 2010 at 5:10 PM

gperoni wrote Aug 12, 2010 at 4:13 PM

Dopo aver letto vari articoli sull'application lifecycle di WP7 sto iniziando a farmi un'idea. Prima di tutto quindi bisogna stabilire cosa salvare in funzione dello stato dell'applicazione, ad esempio se l'utente è nel menu devo memorizzare quale schermata del menu è attiva (Principale, Settings, Credits, ...), se invece è in fase di gioco devo mantenere sia quelli che vengono chiamati persistent data, e quindi la logica della partita (quante carte sul tavolo, punteggi, tempo trascorso), sia i transient data, come possono essere la schermata renderizzata (posizione della telecamera, animazioni in corso?, ...). Quindi nello StateManager in ogni funzione di cambio di stato devo assegnare un diverso comportamento all'handler degli eventi Activated, Deactivated, Closing. Giusto fin qui?

Inoltre, ora suppongo di essere in fase di gioco. I persistent data (la logica) la salvo invocando la funzione apposita "SaveGame" che salva su Isolated Storage, all'occorrenza degli eventi Deactivated e Closed/Closing. I transient data invece li salvo sui dictionary che trovo in PhoneApplicationService.State e PhoneApplicationPage.State. Quando poi viene lanciato Activated, cosa devo fare esattamente? Perchè ho letto che è come lanciare una nuova istanza dell'applicazione da zero: quindi devo lanciarla direttamente nello stato di gioco e caricare la partita salvata e i transient data?

Infine, potresti darmi un suggerimento su quali ritieni siano i transient data del nostro gioco?

wrote Feb 2, 2013 at 2:16 AM