1

如果没有连接,我只想在屏幕上打印警报。

这是我在课堂上所做的扩展 Activity 的操作。

if(isOnline()) { 
    // do stuff..
} else {
    Builder builder =  new AlertDialog.Builder(getApplicationContext());
    builder.setMessage("No connection.");
    builder.setCancelable(true);
    AlertDialog dialog = builder.create();
    dialog.show();
}

然后我尝试使用Debug启动它,并得到以下错误:

android.view.WindowManager$BadTokenException: 无法添加窗口 -- 令牌 null 不适用于应用程序

4

4 回答 4

4

采用

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

代替

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

因为您需要传递当前活动上下文来显示AlertDialog而不是应用程序上下文

于 2013-01-30T12:34:11.140 回答
3

换行

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

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

因为您可能需要Activity Context而不是Application Context

希望能帮助到你。

于 2013-05-27T03:41:58.293 回答
1

使用yourActivityName.this代替getApplicationContext();

于 2013-01-30T12:33:40.470 回答
1

尝试使用除此之外的classname.this其他getApplicationContext()时间会导致问题

if(isOnline()) { 
    // do stuff..
} else {
    Builder builder =  new AlertDialog.Builder(getApplicationContext());
    builder.setMessage("No connection.");
    builder.setCancelable(true);
    AlertDialog dialog = builder.create();
    dialog.show();
}
于 2013-01-30T12:33:57.303 回答