我正在一个项目中,其中有一个登录屏幕,要求用户输入电子邮件和密码。如果登录凭据正确,则该应用将打开欢迎活动。问题是单击后退按钮后,应用程序会将其带回登录屏幕,要求再次登录。点击返回按钮时,我希望它退出应用程序。有办法吗?
此外,我希望在用户登录时,该应用程序直接从欢迎屏幕而不是登录屏幕启动。我正在使用Firebase来存储用户的信息。
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String email= editText.getText().toString();
String pwd = editText2.getText().toString();
if(email.isEmpty()){
editText.setError("Please enter your email id");
editText.requestFocus();
}
else if(pwd.isEmpty()){
editText2.setError("Please enter your password");
editText2.requestFocus();
}
else{
progressBar.setVisibility(View.VISIBLE);
mfirebaseAuth.signInWithEmailAndPassword(editText.getText().toString(), editText2.getText().toString()).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful() && mfirebaseAuth.getCurrentUser().isEmailVerified()) {
Intent int31 = new Intent(MainActivity.this,welcome.class);
int31.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
int31.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(int31);
progressBar.setVisibility(View.INVISIBLE);
editText.setText("");
editText2.setText("");
} else if (task.isSuccessful() && !(mfirebaseAuth.getCurrentUser().isEmailVerified())){
Toast.makeText(MainActivity.this,"Please verify your email address and try again!",Toast.LENGTH_SHORT).show();
editText.setText("");
editText2.setText("");
progressBar.setVisibility(View.INVISIBLE);
}
else{
Toast.makeText(MainActivity.this,task.getException().getMessage(),Toast.LENGTH_SHORT).show();
editText.setText("");
editText2.setText("");
progressBar.setVisibility(View.INVISIBLE);
}
}
});
上面的代码是每次都会打开的初始屏幕,与用户是否登录无关。
答案 0 :(得分:1)
您必须按如下所示开始新活动后致电完成
Intent int31 = new Intent(MainActivity.this,welcome.class);
int31.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
int31.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(int31);
progressBar.setVisibility(View.INVISIBLE);
editText.setText("");
editText2.setText("");
finish();
答案 1 :(得分:0)
使用方式如下
Intent int31 = new Intent(MainActivity.this,welcome.class);
int31.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(int31);