网站服务器租用恒创,wordpress 文章 作者,在百度怎么建自己的网站,一起做网店17广州沙河问题
我在使用WindowManager添加一个button#xff0c; windowManager.addView(button,layoutParams);然后关闭当前的这个Activity的时候遇到了WindowLeak这个问题#xff0c;也就是所谓的窗体泄露。 原因
主要原因是因为android只允许在UI主线程操作#xff0c;我在使用W…问题
我在使用WindowManager添加一个button windowManager.addView(button,layoutParams);然后关闭当前的这个Activity的时候遇到了WindowLeak这个问题也就是所谓的窗体泄露。 原因
主要原因是因为android只允许在UI主线程操作我在使用WindowManager添加一个ViewWindowManager依附于Activity这个view依存在Activity当中在销毁Activity的时候通过WindowManager.addView()的方法添加的View就没有了依存导致了窗体泄露。View不能独立存在必须依附于Window。
解决方法
一开始我在onDestroy()里面调用了removeView方法想要移除这个View来避免窗体泄露发现这个方法并不管用后来换成removeViewImmediate()解决了这个问题原因就是两个方法设计到线程同步问题removeViewImmediate()是通知View立刻调用View.onDetachedFromWindow()这说明这个方法是通过一个监听或者观察者来实现的因为线程的同步跟异步问题导致activity销毁了但view还没有被remove完于是就产生了所谓的窗体泄露。问题解决这两个方法也明白了又什么区别。
文章来源安卓 android.view.WindowLeaked解决方法_android.view.windowleaked:-CSDN博客