Regras diferenciadas para usar o getBaseContext do Android, getApplicationContext ou usar o "this" de uma Atividade

Pesquisei bastante essa questão no Google e encontrei muitas recomendações diferentes sobre quando usar getBaseContext, getApplicationContext ou o próprio @ de uma atividaist ponteiro.

Três regras que surgem com frequência e parecem fazer muito sentido são -

Para uma referência de longa duração a uma atividade de contexto getApplicationContext deve ser usado, pois existe, desde que a sua aplicação existaPara contextos cujos ciclos de vida estão vinculados a suas atividades, seu próprio contexto de atividades ist) deve ser usad Armazenar ponteiros de contexto estaticamente apenas com muita cautela (e, se possível, nem um pouco)

Supondo que estejam corretas, qual é a utilidade de getBaseContext?

Eu já vi muitos exemplos em que novas intenções são criadas usando -

Intent intent = new Intent(getBaseContext(), myClass.class);

Em oposição a -

Intent intent = new Intent(this, myClass.class);

Qual é o método correto ou recomendado e por quê?

questionAnswers(1)

yourAnswerToTheQuestion