Por que AlertDialog.Builder (contexto de contexto) aceita apenas Activity como parâmetro?

No meu processo de aprendizado contínuo (caixas de diálogo desta vez), descobri que isso funciona:

  AlertDialog.Builder builder = new AlertDialog.Builder(this);

Embora o seguinte não funcione (falha no tempo de execução com o WindowManager $ BadTokenException):

  AlertDialog.Builder builder = new AlertDialog.Builder(this.getApplicationContext());

Eu não entendo o porquê, porqueo construtor para AlertDialog.Builder é definido para aceitar o contexto como um parâmetro, não Activity:

public AlertDialog.Builder (contexto de contexto)

Construtor usando um contexto para este construtor e o AlertDialog que ele cri

O que estou perdendo

questionAnswers(2)

yourAnswerToTheQuestion