getcontext - getbasecontext android
Reglas diferenciadas para usar getBaseContext, getApplicationContext de Android o usar “Activity” de una actividad (1)
El getBaseContext () es el método de ContextWrapper. Y ContextWrapper es, "Implementación proxy de Contexto que simplemente delega todas sus llamadas a otro Contexto. Puede clasificarse para modificar el comportamiento sin cambiar el Contexto original". (según javadocs)
Así que esto se usa para delegar las llamadas a otro contexto.
He buscado en Google esta pregunta mucho y he encontrado muchas recomendaciones diferentes sobre cuándo usar getBaseContext , getApplicationContext o el puntero de esta actividad .
Tres reglas que surgen a menudo y parecen tener mucho sentido son:
- 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 contextos cuyos ciclos de vida están ligados a sus actividades, se debe usar su propio contexto de actividad ( este )
- Almacene los indicadores de contexto de forma estática solo con gran precaución (y, si es posible, en absoluto)
Suponiendo que estos son correctos, ¿cuál es el uso de getBaseContext ?
He visto muchos ejemplos donde se crean nuevos intentos usando:
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é?