后退按钮将用户从应用

时间:2017-01-19 16:08:39

标签: android android-activity

我正在使用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

https://github.com/firebase/quickstart-android/blob/master/auth/app/src/main/java/com/google/firebase/quickstart/auth/EmailPasswordActivity.java

非常感谢任何帮助。已经处理了这个问题4天了

1 个答案:

答案 0 :(得分:0)

在成功完成登录或注册后,使用以下代码启动新活动时完成活动:

finish()

希望这有效。