【问题标题】:Android app showing MainActivity before the activity started using startActivityForResult()使用 startActivityForResult() 在 Activity 开始之前显示 MainActivity 的 Android 应用
【发布时间】:2020-05-24 18:44:58
【问题描述】:

我正在使用 FirebaseUI 身份验证在我的应用中实现登录流程。为了真正开始登录流程,我首先创建了一个 AuthStateListener

authStateListener = FirebaseAuth.AuthStateListener { authObj ->
            val currUser = authObj.currentUser
            if (currUser == null)
                startActivityForResult(
                    AuthUI.getInstance()
                        .createSignInIntentBuilder()
                        .setAvailableProviders(providers)
                        .build(),
                    SIGN_IN
                )
}

然后我将authStateListener 对象附加到onResume() 中的FirebaseAuth 实例,就像这样

override fun onResume() {
        super.onResume()
        FirebaseAuth.getInstance().addAuthStateListener(authStateListener)
}

即便如此,在启动应用时,首先会出现 MainActivity,然后几秒钟后才会出现 FirebaseUI 活动。

总之,我的问题是如何让 FirebaseUI 活动成为用户在启动应用时看到的第一个活动,而不是 MainActivity?

感谢您考虑我的问题!

【问题讨论】:

    标签: android kotlin android-activity firebaseui


    【解决方案1】:

    如果您想在用户打开应用时显示 FirebaseUIActivity,您需要从 Manifest 文件中的 MainActivity 条目中删除以下代码,并将其添加到您的 FirebaseUIActivity。

    intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
    

    所以你的主要活动将变成

    <activity android:name=".MainActivity"/>
    

    你的 FirebaseUIActivity 会变成

    <activity android:name=".FirebaseUIActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    

    一旦你完成了,你需要调用 startActivity 而不是 startActivityForResult()

    【讨论】:

    • 很抱歉,如果我表述不清楚,但 FirebaseUI 活动实际上并不存在于代码中,而是使用代码中的代码调用它startActivityForResult() 函数,通过构建一个意图,所以我实际上不能将它分配为清单文件中的启动器活动。不过,感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 2021-02-08
    相关资源
    最近更新 更多