首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >按下home按钮时的调用方法

按下home按钮时的调用方法
EN

Stack Overflow用户
提问于 2011-01-24 23:51:08
回答 7查看 139.6K关注 0票数 52

我在我的一个Android活动中使用了这个方法:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if(keyCode == KeyEvent.KEYCODE_BACK)
    {
        Log.d("Test", "Back button pressed!");
    }
    else if(keyCode == KeyEvent.KEYCODE_HOME)
    {
        Log.d("Test", "Home button pressed!");
    }
    return super.onKeyDown(keyCode, event);
}

但是,即使日志是有效的,KEYCODE_HOME方法也不会触发。不过,这适用于后退按钮。有没有人知道这是为什么,以及如何让它工作?

EN

回答 7

Stack Overflow用户

发布于 2011-01-24 23:59:34

Home按钮是一个非常危险的重写按钮,正因为如此,Android不允许你重写它的行为,就像你重写BACK按钮一样。

看一下这个discussion.

您将注意到home按钮似乎是作为意图调用实现的,因此您最终必须向您的活动中添加一个意图类别。然后,只要用户点击主页,你的应用程序就会作为一个选项出现。您应该考虑使用home按钮要完成的任务。如果它不是要替换设备的默认主屏幕,我将警惕过载的主页按钮,但这是可能的(在上面的讨论)。

票数 35
EN

Stack Overflow用户

发布于 2011-08-13 20:34:10

我花了将近一个月的时间才度过这个难关。刚才我解决了这个问题。在您的活动的onPause()中,您必须包含以下if条件:

    if (this.isFinishing()){
        //Insert your finishing code here
    }

函数isFinishing()返回一个布尔值。如果您的应用程序实际上正在关闭,则为True;如果您的应用程序仍在运行但例如屏幕关闭,则为False。

希望它能帮上忙!

票数 22
EN

Stack Overflow用户

发布于 2011-01-25 00:05:21

HOME按钮不能被应用程序截获。这是Android中的一种设计行为。这样做的原因是为了防止恶意应用程序控制你的手机(如果用户不能按back或home,他可能永远无法退出应用程序)。Home按钮被认为是用户的“安全区域”,并将始终启动用户配置的home应用程序。

上面唯一的例外是任何配置为home替换的应用程序。这意味着它在相关活动的AndroidManifest.xml中声明了以下内容:

<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>

当按下主页按钮时,将调用当前主页应用程序的activity的onNewIntent

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

https://stackoverflow.com/questions/4783960

复制
相关文章

相似问题

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