android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@4157e878 is not valid; is your activity running? 11-05 19:22:45.095: E/AndroidRuntime(23809): at android.view.ViewRootImpl.setView(ViewRootImpl.java:646) 11-05 19:22:45.095: E/AndroidRuntime(23809): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:301) 11-05 19:22:45.095: E/AndroidRuntime(23809): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215) 11-05 19:22:45.095: E/AndroidRuntime(23809): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140) 11-05 19:22:45.095: E/AndroidRuntime(23809): at android.view.Window$LocalWindowManager.addView(Window.java:537) 11-05 19:22:45.095: E/AndroidRuntime(23809): at android.app.Dialog.show(Dialog.java:278) 11-05 19:22:45.095: E/AndroidRuntime(23809): at android.os.Handler.handleCallback(Handler.java:605) 11-05 19:22:45.095: E/AndroidRuntime(23809): at android.os.Handler.dispatchMessage(Handler.java:92) 11-05 19:22:45.095: E/AndroidRuntime(23809): at android.os.Looper.loop(Looper.java:137) 11-05 19:22:45.095: E/AndroidRuntime(23809): at android.app.ActivityThread.main(ActivityThread.java:4507) 11-05 19:22:45.095: E/AndroidRuntime(23809): at java.lang.reflect.Method.invokeNative(Native Method) 11-05 19:22:45.095: E/AndroidRuntime(23809): at java.lang.reflect.Method.invoke(Method.java:511) 11-05 19:22:45.095: E/AndroidRuntime(23809): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 11-05 19:22:45.095: E/AndroidRuntime(23809): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 11-05 19:22:45.095: E/AndroidRuntime(23809): at dalvik.system.NativeStart.main(Native Method) 11-05 19:22:45.115: E/android.os.Debug(1997)
這個錯誤的解決辦法:判斷當前的activity及父activity是否finish即可。
XXXActivity.this.isFinishing()
如果含有TabActivity,則也要判斷父activity是否finish。
YYYActivity.instance.isFinishing()
即可。