当我们将getApplicationContext()作为AlertDialog.Builder中的参数编写时,为什么android会出错。

时间:2012-09-18 05:30:02

标签: android android-alertdialog

我只是想知道为什么android在写

时会出错
AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());

是否正确。以及为什么它只在我们将this作为参数时才有效。

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

1 个答案:

答案 0 :(得分:3)

Application是一个全局对象,因此它是Context。应用程序上下文仅应用于需要Context且与当前正在运行的组件无关的内容,例如Activity

在这种情况下,AlertDialog是在Activity内创建的(我假设),它只需要Activity的上下文 - 因此您应该使用this。原因是AlertDialog的生命不在其父Activity之外。