Uso del contexto para iniciar otra actividad

Para iniciar una Actividad necesitas una Intención, como:

Intent i = new Intent(context, class) 

Así que para rellenar el parámetro de contexto, un par de opciones están disponibles:

  • Use MyActivity.this o simplemente this
  • Utilizar getApplicationContext()
  • Utilizar getBaseContext()

Y estoy seguro de que hay una o dos opciones más. Todas estas opciones aparecen en algún tipo de tutorial, uno usa el primero, el siguiente utiliza la tercera opción.

Entonces, ¿cuál debo usar? ¿Incluso importa? ¿Es diferente para los diferentes casos?

Sí, es diferente para diferentes casos,

Depende del alcance. Suponga que si está creando un método en una clase global que extends Application para crear un Toast que se usa en cada clase de su Application , puede usar getApplicationContext() para crearlo.

Si desea crear una vista restringida a esa Actividad en particular, puede utilizar Activity.this

Además, si desea crear un AlertDialog en alguna clase interna, diga AsyncTask , entonces debe usar Activity.this , ya que AlertDialog debe estar vinculado a la Activity sí.

También no utilice getBaseContext() sólo use el Context que está teniendo. Para obtener más información para el mismo, puede ver this Answer .

Por lo tanto, la respuesta a la pregunta real es mejor usar Activity.this para iniciar una nueva Activity .

 Intent intent = new Intent(Current_Activity.this, Calling.class); startActivity(intent); 

Son diferentes con seguridad. Estos son contextos diferentes, y deben utilizarse con el menor alcance posible (contexto).

Por ejemplo, si podemos utilizar el contexto de la actividad en lugar de ApplicationContext, se debe usar el contexto de la actividad, lo mismo se aplica al contexto de la aplicación y al contexto base.

Lo haces así …

 Intent intent = new Intent(); intent.setClass(MainActivity.this, SecondActivity.class); startActivity(intent); 
  • Por favor, explícame Clase de contexto en Android
  • Cómo iniciar una actividad desde un diálogo en Android
  • Uso del contexto en FragmentPagerAdapter
  • OnBind () en servicio siempre devuelve Falso - Android
  • Cómo hacer referencia a la actividad actual o principal de otra clase
  • Cómo iniciar una Intención si el contexto no es Contexto de la Actividad pero Contexto de la Aplicación
  • GetApplicationContext (), getBaseContext (), getApplication (), getParent ()
  • SQLite Base de datos "contexto" pasó a adaptador
  • Android Obtener el directorio de datos 'Inicio' de la aplicación
  • Cómo mostrar Cuadro de diálogo de un método estático
  • Excepción de puntero nulo iniciando IntentService
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.