ventana emergente como cualquiera.

Estoy escribiendo una aplicación que muestra las llamadas perdidas y los SMS no leídos en una ventana emergente. también tiene una función de recordatorio (para cerrar la ventana emergente y abrirla después de un tiempo especificado). Es similar a la ventana emergente de any.do.

Pude crear una ventana de este tipo utilizando WindowManger, pero por algunas razones que no entiendo hasta ahora, la ventana emergente desaparece después de un tiempo (aunque debe abrirse hasta que el usuario la cierre, o haga clic en el botón de recordatorio). lo que podría llevar horas).

Así es como creé la ventana emergente existente

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);

porque no estaba seguro de si el WindowManager es realmente el camino correcto para eso, también traté de hacer lo mismo con una actividad con el siguiente estilo

<style name="PopupWindow" parent="CustomTheme">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">false</item>
    <item name="android:windowIsTranslucent">true</item>

ahora se parece a la versión de WindowManager, pero tiene un problema: no puedo acceder a la ventana de mi aplicación debajo de ella, porque las partes translúcidas de la ventana se ven perfectas, pero bloqueando cualquier evento de clic en la ventana de abajo, para que pueda No lo desplace ni haga nada con él. como en cualquier. quiero que aparezca esa ventana, pero no bloquear ninguna posibilidad de trabajar en la ventana de abajo mientras se abre la ventana emergente.

EDITAR: quiero ver la ventana emergente en la parte inferior, que cubre el 30% de la ventana, pero poder desplazar la ventana debajo de ella (y también realizar eventos de clic en ella) al mismo tiempo.

entonces mis preguntas son:

¿Es el WindowManager la forma correcta de crear esta ventana emergente?Si es así, ¿por qué desaparece a veces no deseado? ¿Cómo puedo prevenirlo?si no, ¿cómo puedo crear una actividad que se comporte como la ventana que creé con el WindowManager?o son las dos formas equivocadas? en este caso; ¿Cuál es el camino correcto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta