différence et quand utiliser getApplication(), getcontexteapplication(), getBaseContext() et someClass.cette

Je suis nouveau sur android et j'essaie de comprendre la différence entre getApplication(), getApplicationContext(), getBaseContext(), getContext() et someClass.this et en particulier lors de l'utilisation de ces méthodes dans le code suivant des lignes:

Lorsque je lance un toast quelle est la différence entre ces derniers et dans quel cas les utiliser?

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();

même avec les intentions:

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);
InformationsquelleAutor Pheonix7 | 2012-04-27