我有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
}
答案 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;