如果应用程序包含某些默认意图,是否可以唯一地监听主页按钮?我已经检查了生命周期方法,但是当我启动默认意图和主页按钮时它将执行。
答案 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()事件回答呼叫的选项!
祝你好运!