Android 不允许用户使用“主页”按钮退出应用程序

Android 不允许用户使用“主页”按钮退出应用程序,android,Android,在我的应用程序中,我不希望用户能够在按下Home(主页)按键时退出我的应用程序。不允许用户这样做有一个特定的原因。有人能提出实现这一目标的正确方法吗 目前我正在做的是重写onKeyDown方法。其代码如下: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_HOME)

在我的应用程序中,我不希望用户能够在按下Home(主页)按键时退出我的应用程序。不允许用户这样做有一个特定的原因。有人能提出实现这一目标的正确方法吗

目前我正在做的是重写onKeyDown方法。其代码如下:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if (keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_HOME) 
    {
       Intent intent = new Intent(this, LockScreen.class);
       intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
       startActivity(intent);
    }
    return true;
}
在清单文件中,我正在进行如下更改:

<activity android:name=".LockScreen"
  android:screenOrientation="portrait"
  android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
    <intent-filter>             
    <category android:name="android.intent.category.HOME"/>
    </intent-filter>
</activity>

Android不支持简单应用的这种情况,所以你不能这样做

通过Commonware阅读本文:。这将解释为什么以您想要的方式处理Home按钮不是一个好主意。

我同意inazaruk的观点,但如果您仍然想这样做,则需要覆盖:

@Override
public void onAttachedToWindow() {

  this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
  super.onAttachedToWindow();

}
看看这个应用程序:。它执行您尝试执行的操作,以防止孩子退出应用程序

它这样做,当启用时,该应用程序成为主屏幕应用程序,从而控制按下主屏幕时发生的情况


但是,用户必须单击以使此应用程序成为默认主屏幕应用程序,才能使其正常工作。

由于android使用堆栈结构,因此通过清除堆栈关闭应用程序。每次单击后退按钮都会清除堆栈顶部,这就是应用程序退出的方式。单击Home(主页)会突然关闭应用程序,但活动仍保留在堆栈顶部。你可以在应用程序的中间点击Home按钮,再次进入你的应用程序,你可以看到你仍然在你回家之前在同一个活动中。

什么原因听起来有些糟糕,你的解决方案是有效的吗?YAH它用于23个home按钮的点击。但是它退出了应用程序。这个解决方案对我来说很有效。目前我可以禁用HOME键。。谢谢你的解决方案。