监控报警,Dialog偶现Crash。日志如下:

java.lang.IllegalArgumentException: View=DecorView@9d9a86 not attached to window managerat android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:619)at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:511)at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:200)at android.app.Dialog.dismissDialog(Dialog.java:766)at android.app.Dialog.dismiss(Dialog.java:746)       

对应代码如下:

private void doNetWork() {showLoading();//网络请求...hideLoading();
}private void showLoading() {if (loadingDialog == null) {loadingDialog = new LoadingDialog(this);}loadingDialog.show();
}private void hideLoading() {if (loadingDialog != null) {loadingDialog.dismiss();}
}

初步分析:dialog在diss时发现无可依附window,原因可能为异步网络请求返回时此Activity已经finish。

初步方案是:isShowLoading里有判断window所依赖的View是否为null,加上试试。

/*** @return Whether the dialog is currently showing.*/
public boolean isShowing() {return mDecor == null ? false : mDecor.getVisibility() == View.VISIBLE;
}
private void doNetWork() {showLoading();//网络请求inghideLoading();
}//....
private void hideLoading() {if (loadingDialog != null && loadingDialog.isShowing()) {loadingDialog.dismiss();}
}

为了mock还原场景,执行了如下代码,发现依然有“not attached to window manager”的日志报错。

private void doNetWork() {showLoading();finish();//网络请求inghideLoading();
}

需要判断当前依附Activity是否存在,最终优化代码如下:

private void hideLoading() {if (loadingDialog != null && loadingDialog.isShowing() && isValidActivity()) {loadingDialog.dismiss();}
}private boolean isValidActivity() {if (!isDestroyed() && !isFinishing()) {return true;}return false;
}

java.lang.IllegalArgumentException: View=DecorView not attached to window manager(Android Dialog崩溃)相关推荐

  1. not attached to window manager问题解决

    关于出现这个问题,一般是因为Activity已经在finish了,但是还在dialog.show(),或者dialog.dismiss().导致window manager无法管理dialog.解决办 ...

  2. android——fragment长时间home或者锁屏java.lang.IllegalArgumentException:No view found for id for.......

    在项目中遇到了这个问题.头痛了很久,总是无法重现,也不能很好的解决.总是在息屏后一段时间,就会报java.lang.IllegalArgumentException:No view found for ...

  3. java.lang.IllegalArgumentException: parameter must be a descendant of this view

    Log信息 java.lang.IllegalArgumentException: parameter must be a descendant of this viewat android.view ...

  4. android 多个fragment切换报错Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f0800f

    主界面一般来说都是底部几个按钮,点击按钮可切换不同页面.一般来说我们是用fragment来实现的.给按钮设置监听事件,监听到点击按钮时候 展示对应fragmnt,而实现fragment方式有两种,一种 ...

  5. Android异常之#8002 java.lang.IllegalArgumentException

    欢迎关注WX公众号: Android开发中如果出现IllegalArgumentException问题,报错如下 # main(1)java.lang.IllegalArgumentException ...

  6. Android报错:java.lang.IllegalArgumentException: Surface was abandoned

    背景情况 使用Camera2 Api 直接报错 报错如下: java.lang.IllegalArgumentException: Surface was abandonedat android.ha ...

  7. java.lang.IllegalArgumentException: pointerIndex out of range

    在使用ViewPager展示图片的时候,使用了PhotoView对ImageView进行多点触控放大缩小,出现了java.lang.IllegalArgumentException: pointerI ...

  8. java.lang.IllegalArgumentException: Can't find a no-arg constructor for class com.xiayiye.takeout.mo

    直接上错误日志: 2020-03-11 18:20:16.647 15661-15661/com.xiayiye.takeout W/System.err: java.lang.IllegalArgu ...

  9. java.lang.IllegalArgumentException: No converter found for return value of type: class com.sail.comm

    目录 1.背景 2.测试环境 3.分析原因及解决 1.背景 自己使用IDEA的maven搭建一套Spring+SpringMVC+Mybatis+Mysql的环境,结果运行程序时,适用@Respons ...

最新文章

  1. lstm 和自注意力机制 bert 本质区别的思考历程
  2. Mallet机器语言工具包-入门测试
  3. 安装Termux的手机上运行Python
  4. OSGI –模块化您的应用程序
  5. 关于网站注册账号时提示Server 对象 错误 'ASP 0177 : 800401f3'
  6. 如何使用计算机远程关闭手机软件,如何用手机远程控制电脑关机
  7. 应用 1:千帆竞发 ——分布式锁
  8. 不重启Windows使环境变量快速生效
  9. 歌曲:后来的我们 歌手:品冠
  10. ARM 搭建开源NAS平台
  11. 学习,只有勤奋是不够的……
  12. Qtablewidget设置某一列不可编辑
  13. SQL server 变量、运算符
  14. ArcGIS合并shp文件及单个shp文件中的相邻斑块
  15. Python基础_10( 判断(if)语句)
  16. Ubuntu 安装一款常用的图像编辑软件
  17. python毕业设计作品基于django框架校园网站系统毕设成品(4)开题报告
  18. 看透HiPiHi,不再是游戏
  19. HDU - 2153 仙人球的残影
  20. 小米官网设计php分析,小米网秒杀系统设计经验与问题解析.ppt

热门文章

  1. spring的maven依赖
  2. 使用 OBS 进行区域录制
  3. 规模指数介绍,如何使用Python获取数据
  4. 人工智能的发展前景如何?做人工智能收入高吗?
  5. MATLAB-随机森林实现数据回归分析预测
  6. JSP动态网页技术基本知识点总结
  7. 客厅计算机笔记本cpu,自己装一台客厅迷你小电脑,我很幸运避开数个大坑
  8. telnet远程管理及AAA认证方式
  9. Ubuntu 文件系统成为只读模式的解决办法
  10. ILRuntime热更的小技巧