最近在测试项目时,需要添加大量的数据,然后运行App时出现了以下报错,之前遇到过此问题,此次再次遇到,把它记录下来留作记录吧。

android.view.WindowManager$BadTokenException:
Unable to add window -- token android.os.BinderProxy@d0f9fcf is not valid; is your activity running?at android.view.ViewRootImpl.setView(ViewRootImpl.java:679)at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:342)at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)at android.widget.Toast$TN.handleShow(Toast.java:459)at android.widget.Toast$TN$2.handleMessage(Toast.java:342)at android.os.Handler.dispatchMessage(Handler.java:102)at android.os.Looper.loop(Looper.java:154)at android.app.ActivityThread.main(ActivityThread.java:6157)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)

反复测试发现在添加数据后可以稳定复现,通过查看源码发现了此错误提示。

// Since the notification manager service cancels the token right
// after it notifies us to cancel the toast there is an inherent
// race and we may attempt to add a window after the token has been
// invalidated. Let us hedge against that.
try {mWM.addView(mView, mParams);trySendAccessibilityEvent();
} catch (WindowManager.BadTokenException e) {/* ignore */
}

源码中提到令牌会失效,原因应该是7.1系统对Toast的window类型做了超时限制,绑定window token,最长超时时间为3.5s,如果UI这段时间内没有执行完任务,toast.show()内部的handle message得不到执行,系统就会把次toast取消掉,并同时把window token设置为无效,等需要显示时,则抛出此异常。

直接调用系统的toast,即使try{}catch{}也无法避免报错问题。

所以要避免这个问题,最好等耗时任务完成后再调用toast。

亦或者自定义toast类,避开系统的超时限制,不直接调用系统的toast类。

Android异常之Unable to add window -- token android.os.BinderProxy@d0f9fcf is not valid;相关推荐

  1. Android程序报错:Unable to add window——token android.os.BinderProxy@431e65b8 is not valid

    http://blog.csdn.net/lvyoujt/article/details/51604746 http://blog.csdn.net/lvyoujt/article/details/5 ...

  2. Unable to add window——token android.os.BinderProxy@196e65b8 is not valid;is your activit is running?

    Caused by: android.view.WindowManager$BadTokenException:Unable to add window--token android.os.Binde ...

  3. Unable to add window -- token android.view.ViewRootImpl$W@e3124a is not vali

    环境: 在PopopWindow里面使用Spinner组件,会报错如下: E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.sg.huosansi ...

  4. Unable to add window -- token android.os.BinderProxy---Android原生开发工作笔记142

    这个错误是由于: public void show() {loadingDialog.show();} 这个之前是上面这样写的.这样写,就会导致,我调用这个dialog,去显示的时候,这个dialog ...

  5. Android之Dialog提示Unable to add window -- token is not valid; is your activity running?

    1.问题 Dialog奔溃提示Unable to add window -- token android.os.BinderProxy@b251dbc is not valid; is your ac ...

  6. Android --- 刚刚进入 Activity 页面的时候无法打开对话框,报错 Unable to add window -- token null is not valid; is your

    报错如下: E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.gxuwz.yixin, PID: 29723java.lang.RuntimeEx ...

  7. Android之运行PopupWindow提示Unable to add window -- token null is not valid; is your activity running?

    1.问题 在使用PopupWindow的时候,我们构建好了直接放在Activity的onCreate函数里面直接运行,提示这个错误 Unable to add window -- token null ...

  8. AlertDialog显示错误 Unable to add window token null is not for an application

    在listView的onItemClick函数中显示一个AlertDialog,出现如下错误 08-07 21:26:43.506: ERROR/AndroidRuntime(9390): andro ...

  9. Android错误之(Android 6.0)Unable to add window android.view.ViewRootImpl$W@d4521e8 -- permission denied

    错误全log信息如下: 08-14 12:54:17.073 6411-6411/? E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.examp ...

最新文章

  1. Linux系统编程——进程基础知识
  2. Step1帐户登录系统(6.使用OpenID登录网站)
  3. 单例设计模式八种方式——5) 懒汉式(线程安全,同步代码块) 6) 双重检查 7) 静态内部类 8) 枚举
  4. 微型计算机原理答案第四章,微机原理第四章习题答案.doc
  5. Java设计模式之行为型:访问者模式
  6. 人脸识别拷勤门禁主板_捷易讲解AI无感人脸识别考勤门禁终端设备在使用中的维护方法...
  7. 魔兽世界客户端数据研究(四):M2文件头分析
  8. 【Vue-router中,require代替import解决vue项目首页加载时间过久】
  9. 裴蜀(贝祖)定理及其证明
  10. 七日掌握设计配色基础pdf_零基础到底该如何学习室内设计!怎么才能掌握核心知识!...
  11. 格雷码(Gray Code)编码、实现及规律(附编码)
  12. JavaScript红宝书第四章
  13. 基于STM32F103C8T6的74HC595驱动8位数码管模块学习
  14. C# 正则表达式数字匹配
  15. 射频day5:波导为什么noTEM;相速 相波长 群速 波阻抗
  16. 《云计算技术与应用基础》课程标准
  17. 赛迪中国ECM市场报告解读一:市场需求在2023年将达到275亿元
  18. Vue <transition> 多个组件的过渡案例
  19. python 定时运行 定时关闭_Python脚本用于定时关闭网易云音乐PC客户端
  20. 数字实现千分位分隔符

热门文章

  1. linux查看磁盘硬件日志,Linux下如何查看硬件信息
  2. IOS 学习笔记 iphone屏幕分辨率统计(全面)
  3. linux 批量建数字目录,关于linux:Bash技巧可以批量在多个目录名前面加上数字的Shell脚本...
  4. HDFS -- 总结
  5. 第一个将短信带到中国的人——杨镭
  6. EasyPoi导入导出(一)
  7. Puppet函数介绍(十八)
  8. 深度学习在人脸识别中的应用 ——优图祖母模型的“进化”
  9. 概率论与数理统计笔记系列之第二章:随机变量及其分布
  10. opencv图像修补-inpaint函数