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

时间:2015-06-19 12:19:43

标签: android javamail alertdialog

我希望在发送邮件时显示AlertDialog。但我有这个例外。 WindowManager$BadTokenException这是什么意思?

pDialog = ProgressDialog.show(MainActivity.sContext , "", "Sending Mail...", true);

    RetreiveFeedTask task = new RetreiveFeedTask();

3 个答案:

答案 0 :(得分:1)

据我所知,您的问题是您尝试在不同的线程上更新UI,这是不可能的。 RetreiveFeedTask可能正在另一个线程上执行。

您必须运行代码才能在UI线程上显示alertdialog。您可以通过在自己的代码中粘贴以下代码并在方法run()的正文中添加代码来实现此目的。

activity.runOnUiThread(new Runnable() {
  public void run() {

  }
}

答案 1 :(得分:0)

这是因为您的活动已关闭,而您正在尝试使用ProgressDialog

进行一些操作

您可以使用onPause方法

来处理它

例如

protected void onPause() {

        super.onPause();
         if ((pDialog != null) && pDialog.isShowing())
             pDialog.dismiss();
         pDialog = null;
    }

答案 2 :(得分:0)

BadTokenException:您无法在不是Dialog的{​​{1}}中显示Context

使用:

Activity

请参阅:BadTokenException