[Android应用程序在使用startActivityForResult()开始活动之前显示MainActivity

问题描述 投票:0回答:1

我正在使用FirebaseUI Auth来在我的应用程序中实现登录流程。为了真正开始登录流程,我首先创建一个[[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个回答
0
投票
如果要在用户打开应用程序时显示FirebaseUIActivity,则需要从清单文件中的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()
© www.soinside.com 2019 - 2024. All rights reserved.