2011-03-15 12 views
5

Tengo una pregunta sobre el término 'contexto' en Android. Veo que el contexto proporciona información sobre el entorno en el que se ejecuta la aplicación, sin embargo, ¿cuál es la diferencia entre el contexto de la aplicación y el contexto de la actividad?Qué es el contexto en Android

y por qué hago las cosas así:

AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); 

¿Por qué me pasan el contexto en el constructor? ¿Alguien puede proporcionarme, por favor, ayúdame a entender qué es un contexto y cuál es el objeto de contexto?

No quiero copiar/pegar desde Android Referencia porque ya lo he leído ..... demasiadas veces sin entender.

+0

Aquí hay una buena respuesta a una pregunta similar sobre [Context] (http://stackoverflow.com/questions/1026973/android-whats-the-difference-between-the- various-methods-to-get-a -context/1027438 # 1027438) – Adinia

Respuesta

3

Son instancias de Context, pero la instancia de la aplicación está vinculada al ciclo de vida de la aplicación, mientras que la instancia de la actividad está vinculada al ciclo de vida de una actividad. Por lo tanto, tienen acceso a información diferente sobre el entorno de la aplicación.

Si lee los documentos en getApplicationContext, observa que solo debe usar esto si necesita un contexto cuyo ciclo de vida es independiente del contexto actual. Esto no se aplica en ninguno de sus ejemplos.

El contexto de la actividad presumiblemente tiene cierta información sobre la actividad actual que es necesaria para completar esas llamadas. Si muestra el mensaje de error exacto, podría indicar qué es exactamente lo que necesita.

Pero en general, use el contexto de actividad a menos que tenga una buena razón para no hacerlo.

0

Clase general

interfaz a la 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 los recursos específicos de la aplicación y clases, así como arriba-llamadas para operaciones a nivel de aplicación, como actividades de lanzamiento, la radiodifusión y las intenciones que reciben, etc. dijo

página web anddev muy claramente.

debe pasarlo a alguna otra clase para que puedan acceder a la información global entre otras cosas.

+0

que está lejos de ser claro.Es una de las descripciones más vagas que uno podría escribir. – DallaRosa

1

En la palabra simple, tratar de explicar. Tomemos su ejemplo

Si usa AlertDialog Builder, ¿cómo entenderá AlertDialog dónde se mostrará? (Si no está en esa actividad)

Aquí el contexto aparece en la imagen. Pasamos el Contexto de la actividad al AlertDialog. En breve AlertDialog aparecerá en el contexto provisto.

Esto es lo que mi entendimiento me corrige si estoy equivocado.

Cuestiones relacionadas