【问题标题】:How to kill the application with the home button如何使用主页按钮杀死应用程序
【发布时间】:2023-03-28 10:57:01
【问题描述】:

当用户在应用程序中间按下主页按钮时,我想终止我的应用程序。

还有人找我使用onUserLeaveHint() 方法。我应该在哪里使用这种方法?

【问题讨论】:

标签: android android-activity kill


【解决方案1】:

在较旧的 Android 版本上,这可以正常工作。但 Android 改变了这一点,因为 “Home Button 应该保持 Home Button”,而且他们不希望任何人覆盖 Home Button。由于这个原因,您的代码将无法正常工作。

也许你可以实现这个:

@Override
protected void onStop() {
    super.onStop();
    finish();
}

但我敢打赌你不想这样做,因为每当你的应用程序进入后台时,onStop() 就会被调用(例如,当你的应用程序在前台时来电),这将是 finish当前的Activity 目前不需要

你可能想看看

How to finish an android application?

【讨论】:

    【解决方案2】:

    您可以尝试按如下方式覆盖 onPause() 按钮:

    @Override
    public void onPause() {
        super.onPause();
        this.finish();
    }
    

    请记住,Android 旨在防止主页按钮杀死应用。

    【讨论】:

    • 如果在我们的应用程序运行时有人打电话,应用程序将在某些事情中终止。
    【解决方案3】:

    Home 按钮是一个非常危险的覆盖按钮,因此,Android 不会让你覆盖它的行为,就像你做 BACK 按钮一样。 所以你不能在没有用户确认的情况下永久覆盖主页按钮(这是出于安全问题) 所以即使在使用时:

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

    它不会起作用,因为 KeyEvent.KEYCODE_HOME 总是由系统处理并且从不发送到应用程序。

    【讨论】:

    • @ANdroidNabz 所以你说当我使用主页按钮关闭应用程序时,它不可能让我的应用程序始终从第一个活动开始??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多