Duda variables estáticas al matar la app

14 views
Skip to first unread message

luis miguel navarro

unread,
Mar 11, 2016, 6:38:13 AM3/11/16
to desarrolladores-android
Estoy desarrollando una aplicación en la que hago uso de un objecto estático con una serie de propiedades.

El tema es que al matar la aplicación y volver a abrirla, este objeto tiene variables con el mismo estado con las que se mató la aplicación.

Este bug solo me pasa con ciertos dispositivos, por ejemplo Samsung Galaxy S3, Nexus 6.

He probado con un One Plus X y un motorola moto g y sucede esto.

Alguna idea?

Muchas gracias. 

Javier ExpoCode

unread,
May 23, 2016, 11:08:26 AM5/23/16
to desarrolladores-android
Hola Luis,

Creo que no deberías de usar objetos estáticos para almacenar estados de una app, si lo que necesitas es mantener valores de variables y hacerlas accesibles desde cualquier Activity o Fragment lo que necesitas es un Singleton mas que un objeto con variable sy métodos estáticos.

Por ejemplo para crear una clase Singleton puedes usar el siguiente código:

public class MainController {
    private static MainController mInstance = null;
    private static Context mCtx;

    private MainController(Context context){
        mCtx = context;
    }

    public static synchronized MainController getInstance(Context context){
        if(mInstance == null)
            mInstance = new MainController(context);
        else
            mCtx = context;
        return mInstance;
    }

    public static void reset() {
        if (mInstance != null)
            mInstance.clean();
        mInstance = null;
        mCtx = null;
    }

    public void clean() {
        //Limpiar todas las propiedades de instancia
    }

}

Y luego para llamarlo sencillamente usas el método getInstance(..):

MainController.getInstance(Context context);

Y con ello obtienes siempre la misma instancia (Singleton) del objeto en cualquier parte de tu aplicación.

Cualquier duda pro aquí estaremos. ;) 

Happy Coding!
Reply all
Reply to author
Forward
0 new messages