Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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 在不停止应用程序的情况下绘制并勾选来宾_Java_Android_Background_Popup - Fatal编程技术网

Java 在不停止应用程序的情况下绘制并勾选来宾

Java 在不停止应用程序的情况下绘制并勾选来宾,java,android,background,popup,Java,Android,Background,Popup,我想弄清楚,像swipe pad()这样的应用程序如何能够在不考虑窗口/应用程序位于顶部的情况下钩住访客,以及它如何能够在不停止其下方的后台应用程序的情况下进行绘制和交互 我已经能够创建对话框和弹出窗口等应用程序,但如果不停止/冻结后台应用程序,我无法让它们显示 更新:找到了合适的解决方案 在您的服务的onCreate中添加以下内容 WindowManager.LayoutParams params = new WindowManager.LayoutParams( Wi

我想弄清楚,像swipe pad()这样的应用程序如何能够在不考虑窗口/应用程序位于顶部的情况下钩住访客,以及它如何能够在不停止其下方的后台应用程序的情况下进行绘制和交互

我已经能够创建对话框和弹出窗口等应用程序,但如果不停止/冻结后台应用程序,我无法让它们显示

更新:找到了合适的解决方案

在您的服务的onCreate中添加以下内容

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
            WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT);
    params.setTitle("title");
    WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
    wm.addView(layout, params);
触摸事件的处理方式与常规一样,除非您不触摸服务gui的某个元素,然后服务不读取触摸,并将其直接插入到底层程序中

使用与此相结合的解决方案,我可以在不冻结后台应用程序的情况下执行您尝试执行的操作


别忘了添加uses权限标签“android.permission.SYSTEM\u ALERT\u WINDOW”。

你应该发布一个答案,然后将你自己的答案标记为你问题的最佳答案,而不是更新你的原始问题。是的,我忘了提一下,如果你在室外使用旗帜手表,它允许应用程序接收程序元素之外的触摸事件。如果你的应用程序是右对齐或底部对齐的,而整个屏幕都没有被使用,这会导致一点问题。它使坐标偏移到应用程序相对于屏幕的实际角