关于Android中Dialog show跟dismiss时出现crash的解决办法

本文针对Android中Dialog.show和dismiss时遇到的程序crash问题进行分析,特别是当Activity被finish或重建(如横竖屏切换)时。提供了解决这两种情况的具体方法,包括在创建Dialog时设置其所属Activity,以及在dismiss时检查Activity状态。
摘要由CSDN通过智能技术生成

        最近在做项目的时候,越来越多的开发者反馈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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值