当我从片段中打开活动时,有时会出现错误 因为我从API 23知道它应该是getContext所以为此我也在我的代码上实现了try catch
authStateListener = new FirebaseAuth.AuthStateListener() {
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
if(firebaseAuth.getCurrentUser()!=null) {
try {
Intent intent = new Intent(getContext(), Home_page.class);
startActivity(intent);
} catch (Exception e) {
Intent intent = new Intent(getActivity(), Home_page.class);
startActivity(intent);
}
}
}
但它有时会在Context.getPackageName()上给出空指针对象引用的错误,这可能是可能的原因???
答案 0 :(得分:0)
AsyncCall的监听器可以在调用实体的任何状态下触发。因此,在这种情况下,您应首先检查Context
或isAdded()
是否存在实体。以下是一个例子。
authStateListener = new FirebaseAuth.AuthStateListener() {
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
if (firebaseAuth.getCurrentUser() != null) {
if (getActivity() != null) {
Intent intent = new Intent(getActivity(), Home_page.class);
startActivity(intent);
}
}
}