我正在做一些背景工作并在我这样做的同时显示一个 DialogFragment。一旦我的工作完成并调用了相关的回调,我就会关闭对话框。当我这样做时,我在 android 源代码中遇到了由 NPE 引起的崩溃,这里:
void dismissInternal(boolean allowStateLoss) {
if (mDialog != null) {
mDialog.dismiss();
mDialog = null;
}
mRemoved = true;
if (mBackStackId >= 0) {
getFragmentManager().popBackStack(mBackStackId,
FragmentManager.POP_BACK_STACK_INCLUSIVE);
mBackStackId = -1;
} else {
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.remove(this);
if (allowStateLoss) {
ft.commitAllowingStateLoss();
} else {
ft.commit();
}
}
}
特别是在这一行:FragmentTransaction ft = getFragmentManager().beginTransaction();