在Android中连续弹出两个Dialog就会出现下面的错误:
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?at android.view.ViewRootImpl.setView(ViewRootImpl.java:1517)at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:442)at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:151)at android.app.Dialog.show(Dialog.java:352)at android.app.AlertDialog$Builder.show(AlertDialog.java:1131)at com.deepcode.deepcount.Fragment.FragmentCount$5.run(FragmentCount.java:389)at android.os.Handler.handleCallback(Handler.java:1000)at android.os.Handler.dispatchMessage(Handler.java:104)at android.os.Looper.loopOnce(Looper.java:242)at android.os.Looper.loop(Looper.java:362)at android.app.ActivityThread.main(ActivityThread.java:8393)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:992)
这是因为当上一个对话框dismiss后立即显示下一个对话框,可能会因为窗口令牌(window token)尚未完全释放而导致BadTokenException.解决这个问题最简单的方法就是把Dialog改成Activity.