variables globales de Android

Resuelto d-man asked hace 54 años • 14 respuestas

¿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?

d-man avatar Jan 01 '70 08:01 d-man
Aceptado

Puede ampliar la android.app.Applicationclase 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();
Jeff Gilfelt avatar Dec 22 '2009 09:12 Jeff Gilfelt

Puedes usar uno Singleton Patterncomo 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
Ramps avatar Dec 22 '2009 08:12 Ramps

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;
mahasam avatar Mar 16 '2013 12:03 mahasam

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.

r1k0 avatar Dec 22 '2009 09:12 r1k0