[オリジナル]andoridはdialogオブジェクトを持たずactivityのdialogを閉じることを実現し、dialogがポップアップするかどうかを検出する

1309 ワード

dialogリファレンスがもらえませんか?メンバー変数に設定しませんか?どこかでdialogを閉じたり、現在のactivityが隠されているかどうかを検出したりしたいですか?
  private static ArrayList getWindowViews() {
        try {
            View rootView = null;
            Class wmgClass = Class.forName("android.view.WindowManagerGlobal");
            Object wmgInstnace = wmgClass.getMethod("getInstance").invoke(null, (Object[]) null);
            Field mViewsField = wmgClass.getDeclaredField("mViews");
            mViewsField.setAccessible(true);
            ArrayList o = (ArrayList) mViewsField.get(wmgInstnace);
            return o;

//            private final ArrayList mViews = new ArrayList();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
       List windowViews = getWindowViews();
                if (windowViews != null && windowViews.size() > 0 && windowViews.get(windowViews.size() - 1) != getWindow().getDecorView()) {
//                    BaseEditCodeActivity.super.onBackPressed();
                    View view = windowViews.get(windowViews.size() - 1); //parent = android.view.ViewRootImpl
//                    ViewRootImpl
                    getWindowManager().removeView(view);
                }