发现类似这样的错误,view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy

 android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@1ed48043 is not valid; is your activity running?


WindowManager: Attempted to add application window with unknown token Token{


AudioTrack: AUDIO_OUTPUT_FLAG_FAST denied by client

报错场景,当从一个activity跳转到一个tabhost搭建的UI框架时,再从tabhost切到activiy时无法添加progressdialog对话框。这种错误经测试之手检测出来,因为第一次能够正常显示进度条,第二次切换账号就无法显示,所以说context没有问题。

经过长时间的研究,最终得到解决办法。

1、检查当前调用展示progressdialog方法的对象是不是当前activity,是否是已经销毁的actvity,但是该对象被设置为静态的没有更新成切换的的activity。特别要注意的是第一次能弹进度条,再次切换的该activity出现的问题。

2、就是在progressdialog调用show方法前提前调用:注意这里弹对话框的context必须是当前activity的对象,不然无法在该activity中控制。这种是弹到系统中了,按home键还存在,需要在onstop中处理。

loadingDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);该方法,让进度条展示到系统的windows上,但还能在自己app中控制。
希望能帮到为同样问题苦恼的的程序员。

System.err: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@1ed48043 is not valid; is your activity running?
08-01 16:02:23.674 14370-14370/com.gsww.androidnma.activity W/System.err:     at android.view.ViewRootImpl.setView(ViewRootImpl.java:562)
08-01 16:02:23.674 14370-14370/com.gsww.androidnma.activity W/System.err:     at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:272)
08-01 16:02:23.674 14370-14370/com.gsww.androidnma.activity W/System.err:     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
08-01 16:02:23.674 14370-14370/com.gsww.androidnma.activity W/System.err:     at android.app.Dialog.show(Dialog.java:298)
08-01 16:02:23.674 14370-14370/com.gsww.androidnma.activity W/System.err:     at com.gsww.ui.activity.Login2Activity.showProgress(Login2Activity.java:992)
08-01 16:02:23.674 14370-14370/com.gsww.androidnma.activity W/System.err:     at com.gsww.presenter.LoginPresenter$1.showProgress(LoginPresenter.java:55)
08-01 16:02:23.674 14370-14370/com.gsww.androidnma.activity W/System.err:     at com.gsww.model.impl.LoginModel$2.onStart(LoginModel.java:153)
08-01 16:02:23.674 14370-14370/com.gsww.androidnma.activity W/System.err:     at com.loopj.android.http.AsyncHttpResponseHandler.handleMessage(AsyncHttpResponseHandler.java:325)
08-01 16:02:23.674 14370-14370/com.gsww.androidnma.activity W/System.err:     at com.loopj.android.http.AsyncHttpResponseHandler$ResponderHandler.handleMessage(AsyncHttpResponseHandler.java:138)
08-01 16:02:23.674 14370-14370/com.gsww.androidnma.activity W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
08-01 16:02:23.674 14370-14370/com.gsww.androidnma.activity W/System.err:     at android.os.Looper.loop(Looper.java:135)
08-01 16:02:23.674 14370-14370/com.gsww.androidnma.activity W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5221)
08-01 16:02:23.674 14370-14370/com.gsww.androidnma.activity W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
08-01 16:02:23.674 14370-14370/com.gsww.androidnma.activity W/System.err:     at java.lang.reflect.Method.invoke(Method.java:372)
08-01 16:02:23.675 14370-14370/com.gsww.androidnma.activity W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
08-01 16:02:23.675 14370-14370/com.gsww.androidnma.activity W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

该怎样解决呢?



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值