即使活动正在运行,也会出现BadToken异常

时间:2014-01-22 10:51:15

标签: android exception

我在尝试在android中显示对话框时遇到此异常。我在一些帖子中发现我必须检查

的值
isFinishing()

检查某项活动是否即将完成。但我总是从这个函数中得到“假”的值。

这意味着活动正在运行。但我仍然得到例外

android.view.WindowManager$BadTokenException: Unable to add window

任何人都可以帮我解决这个问题。

这是我的代码

  final Dialog dialog = new Dialog(ThirdTab.this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.alertview);
    dialog.setTitle("text");

    Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);

    dialogButton.setOnClickListener(new OnClickListener() 
    {
    @Override
    public void onClick(View v)
       {                    
      dialog.dismiss();
       }
    }
   );
     runOnUiThread
        (
           new Runnable() 
           {

        @Override
        public void run() 
                {
                        // TODO Auto-generated method stub
            if(!ThirdTab.this.isFinishing())
            {
               dialog.show();
            }
        }
        }  
        );

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。发生这种情况是因为我的活动位于标签活动中。这就是函数isFinishing()返回false并发生异常的原因。

我感谢所有回复此问题的人。