Android Listen Home按钮

时间:2010-12-06 10:14:35

标签: android

如果应用程序包含某些默认意图,是否可以唯一地监听主页按钮?我已经检查了生命周期方法,但是当我启动默认意图和主页按钮时它将执行。

3 个答案:

答案 0 :(得分:6)

活动可以有多个意图过滤器。所以在清单中添加另一个像这样的意图过滤器来监听主页按钮。

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.HOME" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

试试这个让我知道

答案 1 :(得分:1)

  

当用户按下主页按钮时   并恢复我需要的操作   执行dbsycing - Sudeep SR 2010年12月6日   在12:45

听起来您想要覆盖活动的onStop或onStart方法。主页按钮以外的其他内容可能会导致应用程序退出(发送到后台)。后退按钮,相机按钮,来电,选择下拉通知栏中的项目。我不认为你只想依靠主页按钮退出案例。以下是在这些情况下始终可以参考的活动生命周期链接:http://developer.android.com/guide/topics/fundamentals.html#actlife

答案 2 :(得分:0)

您可以使用全局静态布尔标志来执行此操作,该标志将告诉您是否要退出活动。 您需要在任何“完成”过程中提升该标志。 (按下退出程序/后退键)。 这是一个例子:

 /**
 *  Home Event
 */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        StaticClass.exitFlag = true;
        finish();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
public void onUserLeaveHint() { // not executed when answering a call
    if (StaticClass.exitFlag)
        StaticClass.exitFlag = false;
    else
        // Home was pressed!!!
    super.onUserLeaveHint();
}
/**
 *  End Home Event
 */

这样您就可以控制退出活动的时间和方式。 在您不知情的情况下,活动只有两种方式消失 那是通过接听电话或按Home。 此示例消除了使用onUserLeaveHint()事件回答呼叫的选项!

祝你好运!