如何解决onActivityResult没有得到任何结果
我有一种方法onCheckLogin
,用于检查用户是否登录到Firebase。
private final static int LOGIN_REQUEST_CODE = 7171;
private List<AuthUI.IdpConfig> mProviders;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mInit();
presenter.attach(this);
presenter.checkLogin();
}
private void mInit() {
mProviders = Arrays.asList(
new AuthUI.IdpConfig.PhoneBuilder().build(),new AuthUI.IdpConfig.EmailBuilder().build(),new AuthUI.IdpConfig.GoogleBuilder().build());
}
@Override
public void onCheckLogin(boolean isLoggedIn) {
showLoading();
if (isLoggedIn) {
Toast.makeText(this,"Already Signed In! " + user.get().getUid(),Toast.LENGTH_SHORT).show();
} else {
AuthMethodPickerLayout mAuthMethodPickerLayout = new AuthMethodPickerLayout
.Builder(R.layout.layout_sign_in)
.setPhoneButtonId(R.id.btn_phone_sign_in)
.setEmailButtonId(R.id.btn_email_sign_in)
.setGoogleButtonId(R.id.btn_google_sign_in)
.build();
startActivityForResult(AuthUI.getInstance()
.createSignInIntentBuilder()
.setAuthMethodPickerLayout(mAuthMethodPickerLayout)
.setIsSmartLockEnabled(false)
.setTheme(R.style.LoginTheme_Main)
.setAvailableProviders(mProviders)
.build(),LOGIN_REQUEST_CODE);
}
}
未登录用户时,将按预期显示Auth.UI
。问题是,当我尝试使用任何提供程序登录时,都没有收到onActivityResult
的任何结果,而是该应用程序在后台运行。
@Override
protected void onActivityResult(int requestCode,int resultCode,@Nullable Intent data) {
super.onActivityResult(requestCode,resultCode,data);
if (requestCode == LOGIN_REQUEST_CODE) {
IdpResponse mResponse = IdpResponse.fromResultIntent(data);
if (resultCode == RESULT_OK) {
startActivity(new Intent(this,MainActivity.class));
finish();
} else {
if (mResponse != null)
if (mResponse.getError() != null)
Toast.makeText(this,"[ERROR]: " + mResponse.getError().getMessage(),Toast.LENGTH_SHORT).show();
}
}
}
有什么帮助吗?
为此我必须在清单中设置android:noHistory="true"
的活动吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。