当前位置: 代码迷 >> Android >> 像这种异常怎么定位
  详细解决方案

像这种异常怎么定位

热度:13   发布时间:2016-04-28 04:45:01.0
像这种错误如何定位?


像这种错误,因为dialog依附的context不存在而报错。但是log中没有给出哪行代码造成的,这种错误该如何排查?我如何能定位到哪里的代码有错误?
------解决方案--------------------
第一行最后
is your activity running?
------解决方案--------------------
对你的dialog加上mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);这句,作为系统的dialog使用,同时加上<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />  
------解决方案--------------------
对于这种情况,大部分是activity已经销毁,但是却有个线程跑着,发出消息显示dialog 的,内存泄露了。
你可以在显示dialog或者隐藏dialog时,做下判断 isFinishing()
------解决方案--------------------
或者dialog直接用application的context
------解决方案--------------------
引用:
Quote: 引用:

对你的dialog加上mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);这句,作为系统的dialog使用,同时加上<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />  


你这个方法是不是就是将dialog定义为系统级别的,不依附于activity了,所以不会报那个错误了?

是的
  相关解决方案