我有一个我已设置为系统覆盖的活动。我能够显示它,但我似乎无法在我想要的时候弄清楚它(通过按钮)。
系统覆盖图显示在Activity的onCreate()方法中,如下所示:
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.OPAQUE);
WindowManager wm = (WindowManager)getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
View mTopView = (ViewGroup) getLayoutInflater().inflate(R.layout.overlay, null);
getWindow().setAttributes(params);
wm.addView(mTopView, params);
我在Activity的布局XML文件中有一个按钮,其中有一个onClick调用方法doOk(View v),它执行以下操作:
WindowManager wm = (WindowManager)getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
wm.removeView(v);
然而,当我点击OK时,我得到一个致命的异常" java.lang.IllegalStateException:无法执行活动的方法"和" java.lang.IllegalArgumentException:视图未附加到窗口管理器"
如何删除系统叠加活动?