Cómo guardar / restaurar variables globales en android incluso cuando os matar aplicación

En android, Google nos recomienda guardar las variables globales en la aplicación. Pero hay un problema, si los android os matan la aplicación debido a la falta de memoria, la aplicación será re-oncreate y las variables globales que guardé se perderán.

No sé cuándo salvar / restaurar estas variables, la aplicación no nos da algunos métodos como onsaveinstancestate () / onrestoreinstancestate ().

Tengo una idea, pero no puedo asegurarme de que pueda funcionar bien. Veo que alguna aplicación irá a slashScreen cuando os lo mató, tal vez podamos guardar estas variables gloabl en SplashAvtivity? Debido a que la actividad tiene los métodos onsaveinstancestate () / onrestoreinstancestate (), app start splashActivity al principio y no lo termina, cuando encontramos os matar la aplicación, podemos ir a SplashActivity (terminar toda la actividad sobre ella en la tarea) de nuevo then onrestoreinstancestate ().

¿Hay alguna otra buena manera de guardar / retore las variables globales? Por supuesto, creo que si google nos puede ofrecer un método como onsaveinstancestate () / onrestoreinstancestate () en la aplicación, será mejor.:S

Si una variable debe persistir entre ejecuciones, tiene que hacer algo de persistencia de disco. La manera más fácil, como lo sugiere Raghunandan, es usar Preferencias Compartidas.

Para ello, solicite primero las preferencias compartidas:

SharedPreferences prefs = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); editor.putString("key_name", "key_value"); editor.commit(); //important, otherwise it wouldn't save. 

Usted puede hacer esto, por ejemplo, en el onStop o onPause de la actividad (onPause siempre se llama, pero no hay garantía onStop se llamará antes de Honeycomb).

En su onCreate (o cuando usted necesita el valor), lee SharedPreferences y compruebe si hay un conjunto de valores, de lo contrario use un valor predeterminado:

 SharedPreferences prefs = getSharedPreferences(PREFS_NAME, 0); String myVariable = prefs.getString("key_name", "default_value"); 

Ahora puede utilizar myVariable con el valor persistido o el valor inicial (predeterminado) si no se guardó nada anteriormente.

Para obtener más información, consulte https://developer.android.com/guide/topics/data/data-storage.html#pref

Para aclarar, PREFS_NAME es el nombre de tu archivo de preferencias compartidas. Por lo general, antes de añadir el nombre del paquete para su aplicación, es una buena práctica.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.