android.view.WindowLeaked的解决方法


Android.view.WindowLeaked一般会发生在Activity中Dialog的显示。

android的dialog创建的时候会传入一个参数this,就是当前的activity,dialog必须在Activity销毁之前放掉,否则就会报windowleaked的错误。

分析这个原因是:

Dialog是基于Activity而创建的:new ProgressDialog(this);this 就是Activity。Activtity先finish,那Dialog就没得依附了,所以就会报android.view.WindowLeaked。

在activity销毁之前把dialog dismiss就可以解决这种情况。

1.主动销毁 在finish之前把dialog给dismiss掉就行了。

2.被动销毁 在activity的ondestroy中,或者根据自己项目具体情况,在activity生命周期覆写函数中把dialog dismiss掉。

你可能感兴趣的:(Android,Bug)