Почему AlertDialog.Builder (контекст контекста) принимает только Activity как параметр?

В моем текущем процессе обучения (на этот раз диалоговые окна), я обнаружил, что это работает:

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

Хотя следующее не работает (сбой во время выполнения с WindowManager $ BadTokenException):

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

Я не понимаю, почему, потому что конструктор для AlertDialog.Builder определен так, чтобы принимать Context в качестве параметра, а не Activity:

public AlertDialog.Builder (Context context)

Конструктор, использующий контекст для этого Builder и AlertDialog it создает.

Что мне не хватает?

34
задан Brian Tompsett - 汤莱恩 11 June 2015 в 19:37
поделиться