在android中注销后阻止后退按钮

时间:2012-11-30 07:39:05

标签: java android

注销后,用户将被定向到android中的登录界面。现在,如果用户点击手机的后退按钮,它应该保持在登录屏幕上。

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

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

请指导我正确的方法。

4 个答案:

答案 0 :(得分:8)

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

public void onBackPressed() {
    //do nothing
}

答案 1 :(得分:1)

public void onBackPressed(){
    if(appCanClose){
        finish();
    }
}

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

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

答案 2 :(得分:1)

在我看来,像herehere所说的那样,有比覆盖BackPressed metdho更简单,更干净的解决方案。

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

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

这是一种更安全的解决方案,不仅可以在登录后使用,而且可以在登录后使用。

答案 3 :(得分:0)

您只需添加这两行代码即可

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

}

这将防止返回上一个活动,并且在任何人单击“后退”按钮时将应用程序带到后台