主页按键事件监听器

时间:2011-07-14 13:29:06

标签: android

  

可能重复:
  How can I detect user pressing HOME key in my activity?

我使用下面的代码行来查找是否使用了Android手机的反键,它的工作正常。

但我想检测主页按键按键事件,任何人都可以指导它是如何实现的?

@Override
public void onBackPressed() 
{
    Toast.makeText(getApplicationContext(),"BackKeyPressed", Toast.LENGTH_LONG).show();
    super.onBackPressed();
}

谢谢。 。 。

3 个答案:

答案 0 :(得分:3)

您无法“检测主页按键按下事件”,抱歉。

答案 1 :(得分:3)

虽然从技术上讲,回复的人是正确的,但这是一种通过监控活动中的两个事件来检测主页按键的简单方法,它可以满足我的简单需求,也许它也适用于你的。

我在两个事件周围使用了一个100毫秒的栅栏,我觉得它总是适合我。注意:我只测试了一些手机,就像Android中的所有东西一样,你的里程数会因操作系统/硬件的不同而有所不同(即使是记录在案的,有时也不应该工作的东西)

long userInteractionTime = 0;

@Override
public void onUserInteraction() {
    userInteractionTime = System.currentTimeMillis();
    super.onUserInteraction();
    Log.i("appname","Interaction");
}

@Override
public void onUserLeaveHint() {
    long uiDelta = (System.currentTimeMillis() - userInteractionTime);

    super.onUserLeaveHint();
    Log.i("bThere","Last User Interaction = "+uiLag);
    if (uiDelta < 100)
        Log.i("appname","Home Key Pressed");    
    else
        Log.i("appname","We are leaving, but will probably be back shortly!");  
}

答案 2 :(得分:2)

不,这是不可能的。 从Home键代码的文档: http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_HOME

  

public static final int KEYCODE_HOME

     

密钥代码常量:Home键。这个   key由框架处理,永远不会传递给   应用