всплывающее окно как any.do

я пишу приложение, которое показывает пропущенные звонки и непрочитанные смс во всплывающем окне. он также имеет функцию напоминания (чтобы закрыть всплывающее окно и открыть его через указанное время). это похоже на всплывающее окно any.do.

Мне удалось создать такое окно с помощью WindowManger, но по некоторым причинам, которые я до сих пор не понимаю, всплывающее окно исчезает через некоторое время (хотя оно должно открываться до тех пор, пока пользователь не закроет его или не нажмет кнопку напоминания). что может занять несколько часов).

вот как я создал существующее всплывающее окно

windowManager = (WindowManager) context.getApplicationContext()
            .getSystemService(Context.WINDOW_SERVICE);              
    this.inflater = LayoutInflater.from(context);
    params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.TYPE_PHONE,
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                    + WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                    + WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT);
    params.gravity = Gravity.BOTTOM;
    vgPopupWindow = (ViewGroup) LayoutInflater.from(context).inflate(R.layout.popup_mainwindow, null);
    vgPopupContent = (ViewFlipper) vgPopupWindow.findViewById(R.id.popup_content);
    vgPopupAreaContent = (ViewGroup) vgPopupWindow.findViewById(R.id.popup_area_content);
    vgPopupAreaActions = (ViewGroup) vgPopupWindow.findViewById(R.id.popup_area_actions);
    vgPopupTabs = (LinearLayout) vgPopupWindow.findViewById(R.id.popup_tabs);
    vgPopupHeader = (LinearLayout) vgPopupWindow.findViewById(R.id.popup_main_header);
    windowManager.addView(vgPopupWindow, params);

потому что я не был уверен, что WindowManager действительно подходит для этого, я также попытался сделать то же самое с действием со следующим стилем


    @android:color/transparent
    true
    false
    true

теперь он выглядит так же, как версия WindowManager, но имеет одну проблему: я не могу получить доступ к окну моего приложения под ним, потому что полупрозрачные части окна выглядят идеально, но блокирует любые события щелчка в окне ниже, так что я могу не прокручивать это или делать что-либо с этим. как и в any.do, я просто хочу, чтобы это окно отображалось, но не блокировало возможность работать с окном ниже, пока открыто всплывающее окно.

РЕДАКТИРОВАТЬ: я хочу видеть всплывающее окно внизу, покрывающее 30% окна, но иметь возможность прокручивать окно под ним (а также выполнять события щелчка по нему) одновременно.

так что мои вопросы:

WindowManager правильный способ создания этого всплывающего окна?если да, то почему он исчезает, иногда нежелательный? как я могу предотвратить это?Если нет, как я могу создать действие, которое ведет себя как окно, которое я создал с WindowManager?или оба пути неверны? в этом случае; что правильно?

Ответы на вопрос(1)

Ваш ответ на вопрос