为了账号安全,请及时绑定邮箱和手机立即绑定

按下主页按钮时的呼叫方法

按下主页按钮时的呼叫方法

MMMHUHU 2019-11-14 08:57:36
我的一项Android活动中有这种方法:@Overridepublic 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有效,log方法也不会触发。但是,这适用于后退按钮。有谁知道这是为什么以及如何使它起作用?
查看完整描述

3 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

“主页”按钮是一个非常危险的按钮,因此,Android不允许您以与“返回”按钮相同的方式覆盖其行为。

您会注意到home按钮似乎是作为意图调用实现的,因此最终将不得不向活动添加意图类别。然后,无论何时用户回家,您的应用都会显示为一个选项。您应该考虑使用“主页”按钮要完成的操作。如果它不能代替设备的默认主屏幕,我会避免使“ HOME”按钮超载,但是有可能(根据上述主题中的讨论)。


查看完整回答
反对 回复 2019-11-14
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

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


    if (this.isFinishing()){

        //Insert your finishing code here

    }

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


希望能帮助到你!


查看完整回答
反对 回复 2019-11-14
?
森林海

TA贡献2011条经验 获得超2个赞

应用程序无法拦截HOME按钮。这是Android中的一种设计行为。原因是防止恶意应用获得对您手机的控制权(如果用户无法按回去或回家,则他可能永远无法退出该应用)。“主页”按钮被视为用户的“安全区域”,并且将始终启动用户配置的主页应用程序。


唯一的例外是任何配置为家庭替代的应用程序。这意味着它在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>

当按下主页按钮时,onNewIntent将调用当前家庭应用程序的活动。


查看完整回答
反对 回复 2019-11-14
  • 3 回答
  • 0 关注
  • 417 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信