Android: Diferentes métodos para obtener Context


Puede que en varias piezas de código en programación para Android, te hayas encontrado con:

 public class MiActivity extends Activity {
    public void metodo() {
       mContext = this;    // porque Activity extiende Context
       mContext = getApplicationContext();
       mContext = getBaseContext();
    }
 }

Y no queda muy claro sobre cual de esos métodos se recomienda usar. La documentación no es muy precisa al tratar el uso de la clase Context en Android, pero es posible recopilar información acerca del asunto de diferentes fuentes.


De acuerdo al blog de desarrolladores de Android, en una aplicación reguilar de Android usualmente se tienen dos tipos de Context: El de la Activity, y el de la Application. También nos recomiendan preferir usar el método getApplicationContext() que obtener el Context de la propia Activity (this), básicamente porque el Context de la aplicación esta relacionado con la misma, y simpre sera la misma en el ciclo de vida de la app, mientras que el Context de la Activity puede ser destruida muchas veces como cuando se gira la pantalla, etc.

Acerca de getBaseContext(), solo se puede encontrar la información de uno de los ingenieros de Google Dianne Hackborn, que nos dice que simplemente no usemos ese método en lo posible. y que prefiramos getApplicationContext().

En conclusión, es preferible usar getApplicationContext().

No hay comentarios:

Publicar un comentario