各种窗体操作的bug解决
来源:互联网 发布:mac pro玩dota2帧数 编辑:程序博客网 时间:2024/05/17 01:42
1. java.lang.IllegalArgumentException
View=com.android.internal.policy.impl.PhoneWindow$DecorView{41e0f220 V.E..... R......D 0,0-532,85} not attached to window manager
这个问题是因为dialog调用dismiss方法的时候,context已经被销毁了,这时候就报这个状态异常,在这里先加activity状态的判断,这里需要进行版本适配,isDestory()在activity走onDestory方法后会走的方法,isfinishing()是当代码主动调用finish会走的方法.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { if (!MainActivity.this.isDestroyed() && !MainActivity.this.isFinishing() && dialog != null && dialog.isShowing()) { dialog.dismiss(); }} else { if (!MainActivity.this.isFinishing() && dialog != null && dialog.isShowing()) { dialog.dismiss(); }}
2.IllegalStateException: view has already been added to the window manager
开发中遇到一个奇葩的问题,这个crash每次发版都会报那么一两个,对于有强迫症的我真是不能忍受,这句crash没有报错在代码里面,因此我先用bugly在报错页面里打印一些自定义日志帮助我定位了调用的代码所在,发现是引用的第三方Toast,然后我就进去看发现里面的操作窗体的代码有问题,这里附上stackoverflow的链接,完全一样的错误错误栈信息http://stackoverflow.com/questions/28957174/illegalstateexception-view-has-already-been-added-to-the-window-manager,然后我自定义一个Toast,其实也就是原生Toast的包装类,其实Toast有很多方法可以自定义布局,显示的位置和时间,如setView,setGrivity等方法,还可以自定义显示时间,当然这个要特殊处理不然无法生效,这里不再赘述,这里建议不熟悉窗体操作的同学可以直接在原生Toast的基础上做开发防止因为对窗体操作理解不透彻发生意想不到的错误
1 0
- 各种窗体操作的bug解决
- 解决delphi2010 无法继承窗体的bug
- IE6的各种BUG
- 各种奇葩的BUG
- 66弹出窗体动画效果&&动画不能播放BUG的解决
- C#子窗体进行数据操作后关闭,父窗体藏到后面问题的解决
- 获取各种窗体的高度
- 各种BUG管理工具BUG的状态。
- 关于IE的各种bug
- Android调试的各种bug
- eclipse的bug解决
- 小bug的解决
- 解决onSaveInstanceState的Bug
- 解决电池的BUG
- [c++]字符串类各种操作的实现以及遇到的bug
- 继承窗体的一个小bug
- VS2005的窗体设计器中Bug
- 关闭winform窗体时,出现了bug,貌似微软VS.NET2005的问题,请教大家该如何解决
- 请描述一下 cookies,sessionStorage 和 localStorage 的区别?
- 机器学习中的常见问题——损失函数
- jenkins+svn+maven+tomcat一键构建部署
- ViewPager之Fragment页面切换
- Android学习笔记(二)
- 各种窗体操作的bug解决
- Ubuntu桌面入门指南
- 解析多重嵌套json
- 01IT从业之心里准备
- 学会使用iMindMap解决信息过载问题
- 常见表空间操作sql语句
- Unity编辑器扩展-菜单项
- IntelliJ IDEA 创建Web项目
- jsoup select 选择器