像这种错误,因为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
------解决方案--------------------
是的