Difícil reglas para el uso de Android getBaseContext, getApplicationContext o utilizando una actividad de "esto"
He buscado en Google esta pregunta mucho y he encontrado muchas recomendaciones diferentes sobre cuándo usar getBaseContext , getApplicationContext o una actividad propia de este puntero.
Tres reglas que surgen a menudo y parecen tener mucho sentido son –
- Android Context sin estar en una actividad? ¿Y otra programación sin actividad?
- ¿La mejor práctica para pasar Contexto a clases sin actividad?
- ¿Forma estática de obtener 'Contexto' en Android?
- Context.getApplicationContext () devuelve null en un Service
- Intenta invocar el método virtual 'java.lang.String android.content.Context.getPackageName ()' en una referencia de objeto nulo
- Para una referencia de larga duración a una actividad de contexto se debe utilizar getApplicationContext ya que existe siempre que exista su aplicación
- Para los contextos cuyos ciclos de vida están vinculados a sus actividades, su propio contexto de actividad ( este ) debe ser utilizado
- Almacene los punteros de contexto de forma estática sólo con gran precaución (y, si es posible, no en absoluto)
Suponiendo que estos son correctos, ¿cuál es el uso de getBaseContext ?
He visto un gran número de ejemplos donde se crean nuevas intenciones utilizando –
Intent intent = new Intent(getBaseContext(), myClass.class);
Opuesto a –
Intent intent = new Intent(this, myClass.class);
¿Cuál es el método correcto, o recomendado, y por qué?
- IsolatedContext vs AndroidTestCase.getContext ()
- ¿Es posible obtener el contexto de la aplicación en un proyecto de biblioteca de Android?
- ¿Por qué Android utiliza múltiples contextos y cada uno es diferente?
- Uso del contexto en FragmentPagerAdapter
- SQLite Base de datos "contexto" pasó a adaptador
- Intentando despedir una intención de un ContentObserver
- ¿Qué es "Contexto" en Android?
- Android Obtener el directorio de datos 'Inicio' de la aplicación
GetBaseContext () es el método de ContextWrapper. Y ContextWrapper es, "Implantación Proxy de Contexto que simplemente delega todas sus llamadas a otro Contexto. Puede ser subclasificado para modificar el comportamiento sin cambiar el Contexto original". (Según javadocs)
Así que esto se utiliza para delegar las llamadas a otro contexto.
- ¿Cómo obtener la ubicación actual en Google Maps Android API v2?
- Cómo detectar el navegador Android de stock