studio getcontext getbasecontext getapplicationcontext from example current context activity android android-context

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:

  1. 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
  2. Para contextos cuyos ciclos de vida están ligados a sus actividades, se debe usar su propio contexto de actividad ( este )
  3. 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é?