¿Qué es el 'Contexto' en Android?
En la programación de Android, ¿qué es exactamente una Context
clase y para qué se utiliza?
Lo leí en el sitio del desarrollador , pero no puedo entenderlo claramente.
En pocas palabras:
Como sugiere el nombre, es el contexto del estado actual de la aplicación/objeto. Permite que los objetos recién creados comprendan lo que ha estado sucediendo. Normalmente lo llama para obtener información sobre otra parte de su programa (actividad y paquete/aplicación).
Puede obtener el contexto invocando getApplicationContext()
, getContext()
o getBaseContext()
( this
cuando esté en una clase que se extiende desde Context
, como las clases Aplicación, Actividad, Servicio e IntentService).
Usos típicos del contexto:
Creando nuevos objetos : Creando nuevas vistas, adaptadores, oyentes:
TextView tv = new TextView(getContext()); ListAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), ...);
Acceder a recursos comunes estándar : servicios como LAYOUT_INFLATER_SERVICE, SharedPreferences:
context.getSystemService(LAYOUT_INFLATER_SERVICE) getApplicationContext().getSharedPreferences(*name*, *mode*);
Acceso implícito a los componentes : con respecto a los proveedores de contenido, transmisiones, intención
getApplicationContext().getContentResolver().query(uri, ...);
Definición de contexto
- El contexto representa datos del entorno.
- Proporciona acceso a cosas como bases de datos.
Términos más simples (ejemplo 1)
Considere que Persona-X es el director ejecutivo de una empresa de software de nueva creación.
Hay un arquitecto principal presente en la empresa, este arquitecto principal hace todo el trabajo en la empresa que involucra dicha base de datos, interfaz de usuario, etc.
Ahora el CEO ha contratado a un nuevo desarrollador.
Es el arquitecto quien indica la responsabilidad de la persona recién contratada en función de sus habilidades y si trabajará en la base de datos o la interfaz de usuario, etc.
Términos más simples (ejemplo 2)
Es como acceder a la actividad de Android a los recursos de la aplicación.
Es similar a cuando visitas un hotel, quieres desayunar, almorzar y cenar en los horarios adecuados, ¿verdad?
Hay muchas otras cosas que te gustan durante el tiempo de estancia. ¿Cómo se consiguen estas cosas?
Le pides a la persona del servicio de habitaciones que te traiga estas cosas.
Aquí la persona del servicio de habitaciones es el contexto, considerando que usted es la única actividad y el hotel es su aplicación, y finalmente el desayuno, el almuerzo y la cena tienen que ser el recurso.
Las cosas que involucran contexto son:
- Cargando un recurso.
- Lanzamiento de una nueva actividad.
- Creando vistas.
- obtener servicio del sistema.
El contexto es la clase base para Actividad , Servicio , Aplicación , etc.
Otra forma de describir esto: considere el contexto como un control remoto de un televisor y los canales en el televisor son recursos, servicios, intenciones de uso, etc. - - - Aquí el control remoto actúa como un acceso para obtener acceso a todos los diferentes recursos en primer plano.
Entonces, Remote tiene acceso a canales como recursos, servicios, uso de intents, etc.
Del mismo modo... Quien tenga acceso remoto, naturalmente, tendrá acceso a todas las cosas, como recursos, servicios, uso de intenciones, etc.
Diferentes métodos mediante los cuales puedes obtener contexto.
getApplicationContext()
getContext()
getBaseContext()
- o
this
(cuando esté en la clase de actividad)
Ejemplo:
TextView tv = new TextView(this);
La palabra clave this
se refiere al contexto de la actividad actual.
Un contexto es un identificador del sistema; proporciona servicios como resolución de recursos, obtención de acceso a bases de datos y preferencias, etc. Una aplicación de Android tiene actividades. El contexto es como un identificador del entorno en el que se ejecuta actualmente su aplicación. El objeto de actividad hereda el objeto Contexto.
Para obtener más información, consulte Introducción al desarrollo de Android con Android Studio - Tutorial .
Context
es una "interfaz" a la información global sobre un entorno de aplicación. En la práctica, Context
es en realidad una clase abstracta , cuya implementación la proporciona el sistema Android.
Permite el acceso a recursos y clases específicos de la aplicación, así como llamadas para operaciones a nivel de aplicación, como actividades de lanzamiento, transmisión y recepción de intenciones, etc.
En la siguiente imagen, puede ver una jerarquía de clases, donde Context
está la clase raíz de esta jerarquía. En particular, cabe destacar que Activity
es descendiente de Context
.
¿ Qué es Context
exactamente?
Según la documentación de referencia de Android, es una entidad que representa varios datos del entorno. Proporciona acceso a archivos locales, bases de datos, cargadores de clases asociados al entorno, servicios (incluidos los servicios a nivel de sistema) y más. A lo largo de este libro, y en tu programación diaria con Android, verás que el contexto se transmite con frecuencia.
Del libro " Android en la práctica ", p. 60.
Varias API de Android requieren un Context
parámetro as
Si observa las distintas API de Android, notará que muchas de ellas toman un android.content.Context
objeto como parámetro. También verás que una Actividad o un Servicio generalmente se usa como un archivo
Context
. Esto funciona porque ambas clases se extienden desde Context
.