Utilizzo di Android 2.1+. Ho un servizio che viene occasionalmente ucciso dal sistema operativo (a causa della pressione della memoria, suppongo).Servizio Android ucciso e variabili statiche
Questo servizio gestisce alcuni stati che utilizzano campi di classi membri statici. Mi aspetto che i campi statici mantengano i loro valori nonostante il servizio venga ucciso e riavviato dal sistema operativo.
Ma sembra che non succeda così. Dopo un riavvio, le variabili statiche vengono ripristinate al valore predefinito. E 'quello che dovrebbe succedere? Dovrei usare un altro modo per mantenere uno stato persistente nonostante kill/restart?
Vorrei anche specificare che, poiché i campi statici vengono ripristinati, questo significa che il sistema operativo uccide l'intero processo Java dell'app. E sì, questo succede di tanto in tanto, controlla questo post - http://stackoverflow.com/questions/708012/android-how-to-declare-global-variables/4642069#4642069 –
Android non fornisce davvero alcun mezzo per mantenere persistente stato di scrittura a lampeggiare ogni volta? (ad esempio, onDestroy non è garantito per essere chiamato !!!?) Il mio servizio cambia stato un sacco e questo aumenterebbe l'utilizzo della batteria e accelerare il wearout flash se devo toccare il flash ogni volta che lo stato cambia! – Michael
@Michael Dalla [documentazione per il metodo onDestroy] (https://developer.android.com/reference/android/app/Activity.html#onDestroy()): Nota: non contare su questo metodo chiamato come un posto per il salvataggio dei dati! Ad esempio, se un'attività sta modificando i dati in un fornitore di contenuti, tali modifiche devono essere eseguite in onPause() o onSaveInstanceState (Bundle), non qui. –