用户按下主页按钮时捕获

时间:2012-02-07 16:32:32

标签: android android-intent manifest

我想知道用户在运行我的应用时按下主页按钮的时间。 但: 问题是我不想编辑现有的代码。 意思是我不想在现有活动onPause()方法中添加逻辑。

我找到的唯一解决方案是向应用程序添加一项服务,该服务监听日志检测是否有意图运行

  

HOME:开始:意图{act = android.intent.action.MAIN   猫= [android.intent.category.HOME]

还有其他办法吗,还是真的不可能? 最佳解决方案是在 Manifest.xml 中捕获一个意图,如:

  

动作android:name =“android.intent.category.HOME”

并实现一个新类来捕获它。 (但它似乎没有抓住它。)

2 个答案:

答案 0 :(得分:1)

  

我想知道用户在运行我的应用时按下主页按钮的时间。

你想要达到什么目的?

  

但是:问题在于我不想编辑现有的代码。

根据定义,这是不可能的。

  

我找到的唯一解决方案是向应用程序添加一项服务,该服务监听日志检测是否有意图运行

这是修改代码,违反了您自己的要求。此外,它需要一个你不应该要求的许可。

  

还有其他办法可以做到这一点还是真的不可能?

这取决于你想要达到的具体目标。

  

最佳解决方案是在Manifest.xml中捕获一个intent ...并实现一个新类来捕获它。 (但它似乎没有抓住它。)

HOME是一个类别。这不是行动。主屏幕是响应MAIN类别中的HOME操作的活动。但是,它正在修改代码,违反了您自己的要求。

答案 1 :(得分:0)

您可以使用按键事件处理程序

public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_HOME) {
            // Home key pressed
        } else {
            return super.onKeyDown(keyCode, event);
        }
        return false;
    }