具体错误:

android.view.WindowManager$BadTokenException:Unable to add window - token android.view.ViewRoot$W@47ff8b70 is not valid;is your actvity runing?


1.从一个activity跳转到另一个activity时,自动弹出popwindow,出现了此类错误。原因是window在oncreate方法中还没创建完毕,而打开popwindow需要用到其他参照UI的对象,所以有可能报错。

规避方法:

//设置一个延时,时间需要自己大概估量
new Handler().postDelayed(new Runnable()
{
    @Override
    public void run()
    {
        mPopupMenu.showAtLocation(findViewById(R.id.main_layout), Gravity.BOTTOM, 0, 0);
    }
}, 500);