variables globales de Android
¿Cómo puedo crear una variable global que mantenga los valores restantes durante todo el ciclo de vida de la aplicación, independientemente de la actividad que se esté ejecutando?
Puede ampliar la android.app.Application
clase base y agregar variables miembro de esta manera:
public class MyApplication extends Application {
private String someVariable;
public String getSomeVariable() {
return someVariable;
}
public void setSomeVariable(String someVariable) {
this.someVariable = someVariable;
}
}
En tu manifiesto de Android debes declarar la clase que implementa android.app.Application (agrega el android:name=".MyApplication"
atributo a la etiqueta de la aplicación existente):
<application
android:name=".MyApplication"
android:icon="@drawable/icon"
android:label="@string/app_name">
Luego, en tus actividades puedes obtener y configurar la variable así:
// set
((MyApplication) this.getApplication()).setSomeVariable("foo");
// get
String s = ((MyApplication) this.getApplication()).getSomeVariable();
Puedes usar uno Singleton Pattern
como este:
package com.ramps;
public class MyProperties {
private static MyProperties mInstance= null;
public int someValueIWantToKeep;
protected MyProperties(){}
public static synchronized MyProperties getInstance() {
if(null == mInstance){
mInstance = new MyProperties();
}
return mInstance;
}
}
En tu aplicación puedes acceder a tu singleton de esta manera:
MyProperties.getInstance().someValueIWantToKeep
Esta variable global funciona para mi proyecto:
public class Global {
public static int ivar1, ivar2;
public static String svar1, svar2;
public static int[] myarray1 = new int[10];
}
// How to use other or many activity
Global.ivar1 = 10;
int i = Global.ivar1;
Puede utilizar las preferencias de la aplicación. Son accesibles desde cualquier actividad o fragmento de código siempre que pase el objeto Context y son privados para la aplicación que los utiliza, por lo que no necesita preocuparse por exponer valores específicos de la aplicación, a menos que trate con enrutados. dispositivos. Aun así, podría utilizar esquemas de cifrado o hash para guardar los valores. Además, estas preferencias se almacenan desde la ejecución de una aplicación hasta la siguiente. A continuación se muestran algunos ejemplos de código que puede consultar.