la diferencia y cuándo usar getApplication (), getApplicationContext (), getBaseContext () y someClass.this

Soy nuevo en Android y estoy tratando de entender la diferencia entregetApplication(), getApplicationContext()getBaseContext(), getContext() ysomeClass.this y especialmente cuando se usan estos métodos en las siguientes líneas de código:

Cuando lanzo un brindis, ¿cuál es la diferencia entre estos y en qué casos los uso?

<code>Toast.makeText(LoginActivity.this, "LogIn successful", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplication(), "LogIn successful", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), "LogIn successful", Toast.LENGTH_SHORT).show();
Toast.makeText(getBaseContext(), "LogIn successful", Toast.LENGTH_SHORT).show();
</code>

Lo mismo con intenciones:

<code>Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
Intent intent = new Intent(MenuPagina., LoginActivity.class);
Intent intent = new Intent(getBaseContext(), LoginActivity.class);
Intent intent = new Intent(getApplication(), LoginActivity.class);
</code>

Respuestas a la pregunta(4)

Su respuesta a la pregunta