正所谓没有遇到过类似于not attached to window manager、Android removeView view must not be null的开发者不是好工程师,今天我们就来看看WindowManager中removeView的那些坑。
其实也没必要细说它有多坑,只要避过这些坑即可。
经过这一段时间的项目开发,小结一条真理:
不要在像Activity这样有生命周期的东东里乱写东西,不然莫名其妙的被销毁,然后新建,但早已经是物是人非,最后就是状态异常、空指针各种Crash各种坑。
我们要实现的效果是:点击显示Button-addView,点击消除Button-removeView,
哈哈,不要喷,我想removeView可是想在哪就在哪,随心所欲,游离于Activity的生命周期之外~
直接上代码,将WindowManager抽离出来即可,一个小Demo:
首先添加相应权限:
<span style="font-size:18px;"> <!-- 显示顶层浮窗 -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /></span>
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmln