¿Qué es el 'Contexto' en Android?

Resuelto Brigadier asked hace 54 años • 32 respuestas

En la programación de Android, ¿qué es exactamente una Contextclase y para qué se utiliza?

Lo leí en el sitio del desarrollador , pero no puedo entenderlo claramente.

Brigadier avatar Jan 01 '70 08:01 Brigadier
Aceptado

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()( thiscuando 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, ...);
    
Sameer Segal avatar Aug 26 '2010 06:08 Sameer Segal

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:

  1. Cargando un recurso.
  2. Lanzamiento de una nueva actividad.
  3. Creando vistas.
  4. 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 thisse refiere al contexto de la actividad actual.

Devrath avatar Aug 20 '2013 05:08 Devrath

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 .

angryITguy avatar Aug 26 '2010 06:08 angryITguy

Contextes una "interfaz" a la información global sobre un entorno de aplicación. En la práctica, Contextes 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 Contextestá la clase raíz de esta jerarquía. En particular, cabe destacar que Activityes descendiente de Context.

Diagrama de actividad

Dmytro Danylyk avatar Dec 28 '2012 08:12 Dmytro Danylyk

¿ Qué es Contextexactamente?

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 Contextparámetro as

Si observa las distintas API de Android, notará que muchas de ellas toman un android.content.Contextobjeto 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.

s0ld13r avatar Apr 28 '2012 10:04 s0ld13r