Aplicaciones de Android: ¿Qué es el contexto en Android?

Hagámoslo simple.

La documentación oficial de Android sobre Context dice que es un –

Interfaz con información global sobre un entorno de aplicación

Básicamente, este es el objeto que el tiempo de ejecución de Android transfiere a cada aplicación de Android que se inicia. Contiene toda la información global que la aplicación necesita saber: recursos de cadena, recursos de imagen, componentes de Android en la aplicación (Servicio de actividades, Receptor de difusión y Proveedor de contenido).

Muchos desarrolladores inexpertos cometen un error al suponer que solo hay una única instancia de esta clase, lo que provocará pérdidas de memoria en la aplicación de Android.

Cuando obtiene getApplicationContext () obtiene un objeto de contexto Singleton. Pero cuando haces getContext () no obtienes el mismo contexto Singleton. Cada actividad obtiene su propia instancia de contexto (solo imprima el código hash del objeto de contexto). Incluso el Servicio obtiene su propia instancia de Context Object.

Si no se presta atención a estos detalles minuciosos, se producirán aplicaciones de Android de bajo rendimiento que incluso pueden aplastar. Personalmente, creo que este es a menudo el concepto más incomprendido en el desarrollo de aplicaciones de Android.

Si desea obtener más detalles sobre lo que conduce a una pérdida de memoria, cómo detectarla, por qué sucede y cómo evitarla, no dude en visitar esta serie de videos.

El contexto es el contexto del estado actual de la aplicación / objeto. Es una entidad que representa varios datos del entorno. El contexto ayuda a la actividad actual a interactuar con el entorno externo de Android, como archivos locales, bases de datos, cargadores de clases asociados al entorno, servicios que incluyen servicios a nivel de sistema y más.

En Android , diferentes métodos de invocación por los cuales puedes obtener contexto

1. getApplicationContext (),

2. getContext (),

3. getBaseContext ()

4. o esto (cuando está en la clase de actividad).

Haga clic para obtener más información útil sobre Android

Como su nombre indica, es el contexto del estado actual de la aplicación / objeto. Permite que los objetos recién creados entiendan lo que ha estado sucediendo. Por lo general, lo llama para obtener información sobre otra parte de su programa (actividad, paquete / aplicación)
Puede obtener el contexto invocando getApplicationContext (), getContext (), getBaseContext () o this (cuando está en la clase de actividad).
Usos típicos del contexto:

  • Crear nuevos objetos : crear nuevas vistas, adaptadores, oyentes:
    TextView tv = nuevo TextView (getContext ()); Adaptador ListAdapter = nuevo SimpleCursorAdapter (getApplicationContext (), …);
  • Acceso a recursos comunes estándar : servicios como LAYOUT_INFLATER_SERVICE, SharedPreferences:
    context.getSystemService (LAYOUT_INFLATER_SERVICE) getApplicationContext (). getSharedPreferences (* nombre *, * modo *);
  • Acceso a componentes implícitamente : en relación con los proveedores de contenido, transmisiones, intención
    getApplicationContext (). getContentResolver (). query (uri, …);

Fuente: ¿Qué es el contexto en Android?

Según la página de Google Developers, la definición de contexto en Android es

Interfaz con información global sobre un entorno de aplicación. Esta es una clase abstracta cuya implementación es proporcionada por el sistema Android. Permite el acceso a recursos y clases específicos de la aplicación, así como llamadas para operaciones a nivel de la aplicación, como actividades de lanzamiento, difusión y recepción de intenciones, etc.

2) Está presente en android.content.Context en java.lang.Object

Permite que los objetos recién creados entiendan lo que ha estado sucediendo. Por lo general, lo llama para obtener información sobre otra parte de su programa (actividad, paquete / aplicación).
El contexto es una clase abstracta cuya implementación es proporcionada por el sistema Android. Permite el acceso a recursos y clases específicos de la aplicación, así como llamadas para operaciones a nivel de la aplicación, como actividades de lanzamiento, difusión y recepción de intenciones , etc.