2013-01-19 24 views
5

Ho implementato onRestoreInstanceState e onSaveInstanceState. Entrambi funzionano correttamente quando l'app viene ridotta a icona (premendo il pulsante Home o un'altra attività è in primo piano). Tuttavia, quando minimizzo l'app e uccido il processo (aprendo l'elenco dei processi correnti e terminando quello) l'app non ripristina lo stato dell'istanza salvata. Come posso ripristinare lo stato salvato? È la mia migliore opzione per scrivere il pacchetto savedInstanceState su un file usando serializzabile (avendo quindi qualcosa memorizzato sul disco rigido, piuttosto che su RAM), quindi ricaricare il file salvato da InstanceState dal file?Ripristino stato dopo processo ucciso

risposta

8

Come posso ripristinare lo stato salvato?

Non è possibile. Questo non è lo scopo dello stato dell'istanza salvato.

È la mia migliore opzione di scrivere il fascio savedInstanceState in un file utilizzando serializable (avendo così qualcosa memorizzato che sul disco rigido, piuttosto che RAM), quindi ricaricare la savedInstanceState dal file?

La "migliore opzione" è la persistenza, ad esempio un file, un database o SharedPreferences. Il tuo approccio specifico sembra strano.

Lo stato dell'istanza salvato è solo per informazioni temporanee, ad esempio il contenuto di un modulo che l'utente ha compilato ma non ancora inviato. Qualunque cosa al di là di ciò non appartiene allo stato dell'istanza salvato, ma piuttosto a una sorta di modello di dati persistente. Questo non è diverso dalla costruzione di un'app Web, in cui i dati che hai nelle tue variabili DOM e JavaScript non vivranno per sempre, ma devono invece essere archiviati da qualche parte (in genere su un server Web).

+0

Grazie, volevo solo confermare che avrei dovuto scrivere su un file. – Rilcon42

Problemi correlati