首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Listen Home按钮

Android Listen Home按钮
EN

Stack Overflow用户
提问于 2010-12-06 18:14:35
回答 3查看 4.4K关注 0票数 2

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

EN

回答 3

Stack Overflow用户

发布于 2010-12-06 18:26:55

acticity可以有多个意图过滤器。因此,在清单中添加另一个意图过滤器,像这样监听主页按钮。

代码语言:javascript
复制
<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>

试试这个,让我知道

票数 6
EN

Stack Overflow用户

发布于 2011-02-15 22:50:54

当用户按下主页按钮并恢复操作时,我需要执行dbsycing - Sudeep SR Dec 6 '10 at 12:45

听起来您想要重写activity的onStop或onStart方法。除了home按钮之外,还有其他一些东西会导致应用程序退出(发送到后台)。back按钮、camera按钮、来电,在下拉通知栏中选择一个项目。我不认为你想要仅仅依赖于主页按钮的出口情况。下面是在这些情况下值得参考的活动生命周期链接:http://developer.android.com/guide/topics/fundamentals.html#actlife

票数 1
EN

Stack Overflow用户

发布于 2011-09-18 23:05:37

您可以使用全局静态布尔标志来执行此操作,该标志将告诉您退出活动是否是有意的。您需要在任何“结束”过程中设置该标志。(退出程序/按back键)。下面是一个示例:

代码语言:javascript
复制
 /**
 *  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
 */

通过这种方式,您可以控制何时以及如何退出活动。只有两种方法可以让活动在你不知情的情况下消失,那就是接听电话或按下主页。此示例删除了使用onUserLeaveHint()事件应答呼叫的选项!

祝好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4365312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档