我正在使用Firebase进行注册/登录流程。成功验证后的两个活动都使用intent和finish();打开Main活动。我遇到的问题是主要活动,如果我关闭应用程序后再按回来,当我打开应用程序时它会返回主要活动。但是在我第二次这样做之后,请按回来,当我打开应用程序时,它会返回到登录或注册活动。曾经被用来访问它。我认为它可能与活动生命周期有关。我还试图使用一个监听器来打开应用程序时保持主要活动运行。在像Facebook这样的应用程序上,您可以打开应用程序按回退出并再次打开它多次,它不会让您退出或任何事情
我在意图之后能够用ActivityCompat.finishAffinity(LoginActivity.this);
解决登录活动问题。现在,当我点击两次并退出应用程序时,当我打开应用程序时,它需要我注册活动。即。第一次发布Sign up activity --> LoginActivity --> Mainacitivty -- back button(exit app), open app -- MainActivity-- back button(exit app)-- open app, back button --> SignUpActivity
这是我认为问题所在的地方,android manifest:
<activity android:name=".SignUpActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
当我从后退按钮退出应用程序并再次打开它时,该应用程序正在启动SignUpActivity。所以现在我必须找出一种方法来检查用户是否仍然登录并重定向到MainActivity。这是我读过和尝试的内容。
// get girebase auth instance
auth = FirebaseAuth.getInstance();
//Check to see if user is signed in
mAuthListener = new FirebaseAuth.AuthStateListener(){
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if(user != null){
//user is signed in
startActivity(new Intent(SignUpActivity.this, MainActivity.class));
finish();
Log.d("", "onAuthStateChanged: Signed_in: " + user.getUid());
Toast.makeText(getApplicationContext(),"User status : " + user.getUid(), Toast.LENGTH_LONG).show();
}
//
}
};
https://firebase.google.com/docs/auth/android/anonymous-auth
非常感谢任何帮助。已经处理了这个问题4天了
答案 0 :(得分:0)
在成功完成登录或注册后,使用以下代码启动新活动时完成活动:
finish()
希望这有效。