防止打开另一个活动android

时间:2013-11-06 03:35:40

标签: android android-activity

我有2个活动:主要活动和登录活动。 登录成功登录时,意图将打开主要活动。 问题是每次按下后退按钮,登录活动再次打开。我想最小化应用程序,而不是再次打开登录活动。 我使用共享首选项来标记我的应用程序,如果它正在登录。如果用户登录,我将布尔值设置为true。 我使用共享偏好。并像这样使用cekLogin():

private boolean cekLogin() {
        boolean login;
        login = config.getBoolean("login", false);
        return login;
    }

config是我的共享偏好。

if(cekLogin){
//do not open login activity again when back button pressed <--- i don't know how to do this
}

5 个答案:

答案 0 :(得分:1)

将此代码放入login.java文件

//Assuming this is the part where you open the second activity:
Intent intent = new Intent(this, secondActivity.java);
startActivity(intent);
finish();

当您单击第二个活动上的后退按钮时,应用程序将在您完成登录活动后返回主页。

答案 1 :(得分:1)

在AndroidManifest.xml中,在LoginActivity标记内添加: 机器人:noHistory = “真”
这将关闭此活动的历史记录,以便当您按下后退按钮时,将始终跳过此活动。由于只有登录成功才能进入MainActivity,我认为这没问题。

答案 2 :(得分:0)

您可以覆盖onBackPressed(),以便当用户按下该应用关闭时,而不是返回上一个活动。

或者你可以在开始活动之后完成()之前的活动。

答案 3 :(得分:0)

The problem is everytime i press back button the login activity is opened again.

为此您有两个选择:要么完成登录活动然后转到主要活动,要么可以覆盖方法onBackPressed()

答案 4 :(得分:0)

登录成功后,在sharedpref中存储该值之前,如果是,则必须首先检查他们是否已登录sharedpref,然后它将直接打开主活动,否则打开登录屏幕。

 if(isLogin)
          {
                  startActivity(new Intent(SplashScreenActivity.this, MainActivity.class));
             }
              else
              {
                  startActivity(new Intent(SplashScreenActivity.this, LoginActivity.class));

              }

其中isLogin是一个首先声明为false的布尔变量,如果已经登录成功,则将该值更改为true;