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 –

  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 los contextos cuyos ciclos de vida están vinculados a sus actividades, su propio contexto de actividad ( este ) debe ser utilizado
  3. 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é?

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.