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