注销后,用户将被定向到android中的登录界面。现在,如果用户点击手机的后退按钮,它应该保持在登录屏幕上。
如何在Android中实现这一目标?
我在我的应用程序中使用了以下代码,但它将关闭我的应用程序。它应该只保留在登录屏幕上
Intent objsignOut = new Intent(getBaseContext(),Hello.class);
objsignOut.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(objsignOut);
请指导我正确的方法。
答案 0 :(得分:8)
覆盖登录活动中的onBackPressed
,不执行任何操作..
public void onBackPressed() {
//do nothing
}
答案 1 :(得分:1)
public void onBackPressed(){
if(appCanClose){
finish();
}
}
这些函数既可以存在于系统框架中(如果不在代码中使用),也可以存在于代码中。如果您将其留空,则在按下后退按钮时应用程序将不执行任何操作。
在此示例中,当布尔值appCanClse为true时,后退按钮将退出应用程序,如果为false,则后退按钮将不执行任何操作。我会确保用户仍然有一些退出应用程序。 :P
答案 2 :(得分:1)
在我看来,像here和here所说的那样,有比覆盖BackPressed metdho更简单,更干净的解决方案。
您可以在启动新活动(登录或注销时)时提供标志,以简单地清除“后退堆栈”,而不是覆盖后退按钮的行为:
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
这是一种更安全的解决方案,不仅可以在登录后使用,而且可以在登录后使用。
答案 3 :(得分:0)
您只需添加这两行代码即可
@Override
public void onBackPressed(){
moveTaskToBack(true);
}
这将防止返回上一个活动,并且在任何人单击“后退”按钮时将应用程序带到后台