android - 覆盖服务 - 按下返回按钮

标签 android service overlay back

我该怎么做?

当前解决方案

我启动了一个透明的 Activity ,它捕捉到后退的压力,将其转发到我的服务,然后自行关闭。但是这个activity会在当前运行的activity中可见,因此这不是一个非常漂亮的解决方案。

看到的解决方案

我见过一个应用程序确实可以在服务中捕获后压,但没有捕获后压的 Activity 。如果我显示当前正在运行的 Activity ,则此应用程序没有任何内容。

问题

如何做到这一点?我读过很多线程说,这是不可能的,但我可以看到,有些应用程序可以以某种方式实现这一目标......

最佳答案

我想我发现了它是如何工作的......不要在你的覆盖 View 中使用 WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE + 覆盖你 View 的 dispatchKeyEvent:

 @Override
public boolean dispatchKeyEvent(KeyEvent event)
{
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK)
    {
        // handle back press
        // if (event.getAction() == KeyEvent.ACTION_DOWN)
        return true;
    }
    return super.dispatchKeyEvent(event);
}

关于android - 覆盖服务 - 按下返回按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31462119/

相关文章:

安卓 : Service restarting automatically

linux - 如何配置 lxc 2.0 配置文件以使用多个 overlayfs 下层?

android - MediaPlayer.prepare() 在 Android L 上抛出 IllegalStateException

android - 获取点击日期的背景颜色

android - 如何将 4 张图像加入一个图像按钮 (android)

java - 如何将一个字符串元素与字符串元素数组进行比较?

android - 从 PackageManager 获取包

service - VueJS 中的 Angular 服务相当于什么?

angular - 通过单击按钮关闭 Angular CDK 覆盖

javascript - Primefaces 对话框叠加层不起作用