Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中注销后防止返回按钮_Java_Android - Fatal编程技术网

Java 在android中注销后防止返回按钮

Java 在android中注销后防止返回按钮,java,android,Java,Android,注销后,用户被引导到android中的登录屏幕。现在,若用户点击手机的“后退”按钮,它应该保持在登录屏幕上 如何在android中实现这一点 我在我的应用程序中使用了以下代码,但它将关闭我的应用程序。它应该只停留在登录屏幕上 Intent objsignOut = new Intent(getBaseContext(),Hello.class); objsignOut.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(objsignO

注销后,用户被引导到android中的登录屏幕。现在,若用户点击手机的“后退”按钮,它应该保持在登录屏幕上

如何在android中实现这一点
我在我的应用程序中使用了以下代码,但它将关闭我的应用程序。它应该只停留在登录屏幕上

Intent objsignOut = new Intent(getBaseContext(),Hello.class);
objsignOut.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(objsignOut);

请告诉我正确的方法。

在您的登录活动中覆盖
onBackPressed
,不执行任何操作

public void onBackPressed() {
    //do nothing
}
这些函数既可以存在于系统框架中(如果不在代码中使用,也可以存在于代码中)。如果您将其留空,则当按下“后退”按钮时,应用程序将不会执行任何操作


在本例中,当布尔值appCanClse为true时,后退按钮将退出应用程序,如果为false,后退按钮将不执行任何操作。我会确保用户仍然有办法退出应用程序:p

在我看来,有比重写onBackPressed方法更简单、更干净的解决方案,如前所述和所述

您可以在启动新活动(登录或注销时)时提供标志,以简单地清除“备份堆栈”,而不是覆盖“备份”按钮的行为:

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

这是一个更安全的解决方案,也可以在您登录后使用,而不仅仅是在您注销后使用。

只需添加这两行代码即可

@Override
public void onBackPressed(){
    
    moveTaskToBack(true);

}

它将防止返回到以前的活动,并在任何人点击“后退”按钮时将应用程序带到后台

这是误导性的-当您第一次打开应用程序时,您无法使用“后退”按钮返回系统。更安全的方法是在开始活动时使用标志->
@Override
public void onBackPressed(){
    
    moveTaskToBack(true);

}