Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android错误窗口导致后退按钮停止工作_Java_Android_Overlay_Android Windowmanager - Fatal编程技术网

Java Android错误窗口导致后退按钮停止工作

Java Android错误窗口导致后退按钮停止工作,java,android,overlay,android-windowmanager,Java,Android,Overlay,Android Windowmanager,我有一个应用程序,它应该覆盖通知栏并在触摸屏上执行操作 目前,我通过创建一个系统覆盖按钮使其正常工作,如下所示: WindowManager.LayoutParams params = new WindowManager.LayoutParams( WindowManager.LayoutParams.MATCH_PARENT, statusBarHeight, WindowManager.LayoutParams.

我有一个应用程序,它应该覆盖通知栏并在触摸屏上执行操作

目前,我通过创建一个系统覆盖按钮使其正常工作,如下所示:

    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.MATCH_PARENT,
            statusBarHeight,
            WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
            WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                    | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
                    | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
            PixelFormat.TRANSLUCENT);
    params.gravity = Gravity.RIGHT | Gravity.TOP;

    WindowManager wm = (WindowManager) getApplicationContext().getSystemService(WINDOW_SERVICE);
    wm.addView(mView, params);
但当我尝试单击设备后退按钮时,它不起作用

请注意,我无法将TYPE_SYSTEM_ERROR更改为TYPE_SYSTEM_ALERT,因为它必须覆盖通知栏

我还尝试添加了“flag\u NOT\u FOCUSABLE.”。。在这种情况下,“后退”按钮起作用,但未调用onTouchEvent。

我这样做:

mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
        mParams = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.MATCH_PARENT,
                Constant.NOTIFY_HEIGHT,
                WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
                WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                PixelFormat.TRANSLUCENT);
        mParams.gravity = Gravity.CENTER | Gravity.TOP;

        LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
        mNotifyView = inflater.inflate(R.layout.notification_safety_count_down_layout, null);
        mNotifyTxt = (TextView) mNotifyView.findViewById(R.id.txt_notification_safety_count_down_time);

        mWindowManager.addView(mNotifyView, mParams);

        mNotifyView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent(SafetyCountDownService.this, DoroAssistanceAppActivity.class);
                intent.putExtra(Constant.CALL_FROM, Constant.CALL_FROM_NOTIFICATION);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);

            }
        });
请试试