我尝试了几乎所有事情只是为了简单地创建一个持续在后台的透明覆盖活动。所有它应该做的只是在那里它不应该捕获任何点击事件,而只是通过底层任何活动传递它们。很多帖子似乎都有解决方案。但对我来说,到目前为止他们都没有工作过。 (看到 How to create an overlay canvas with propagation of touch events to the home screen?
Popup over incoming-call screen )
在活动的onCreate中,我尝试了各种组合以使其发挥作用:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
getWindow().addFlags(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
getWindow().addFlags(WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
尽管如此,屏幕似乎只是通过触摸事件,但没有点击事件。因此,例如,当我进入默认主屏幕并启动我的应用程序时,我无法打开任何应用程序,但我可以拖动应用程序并将其选择得奇怪。
请帮助,到目前为止我还没有找到任何解决方案。
答案 0 :(得分:1)
如果用户没有直接与应用程序交互,您是否有使用活动而不是服务的原因?