最近在做项目的时候,越来越多的开发者反馈SDK Dialog的show以及dismiss导致程序crash,出现的问题是传递进来的Activity被finish或者重建(横竖屏切换)了。下面分别对这两种情况说明以及解决办法。
在Dialog.show时出现crash
日志信息:
06-03 17:18:14.550: E/AndroidRuntime(12584): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@42963e08 is not valid; is your activity running?
06-03 17:18:14.550: E/AndroidRuntime(12584): at android.view.ViewRootImpl.setView(ViewRootImpl.java:587)
06-03 17:18:14.550: E/AndroidRuntime(12584): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:326)
06-03 17:18:14.550: E/AndroidRuntime(12584): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
06-03 17:18:14.550: E/AndroidRuntime(12584): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)
06-03 17:18:14.550: E/AndroidRuntime(12584): at android.view.Window$LocalWindowManager.addView(Window.java:561)
06-03 17:18:14.550: E/AndroidRuntime(12584): at android.app.Dialog.show(Dialog.java:293)
06-03 17:18:14.550: E/AndroidRuntime(12584): at com.umeng.socialize.controller.impl.m.onStart(SocialServiceImpl.java:1451)
06-03 17:18:14.550: E/AndroidRuntime(12584): at com.umeng.socialize.controller.impl.aa.onStart(SocialServiceImpl.java:2529)
06-03 17:18:14.55