在Activity中,我调用我的方法添加一个新片段:
protected void addFragment(@NonNull Fragment fragment,
@NonNull String fragmentTag,
int containerViewId, int enterAnim, int exitAnim,
int popEnterAnim, int popExitAnim) {
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction()
.setCustomAnimations(enterAnim, exitAnim, popEnterAnim, popExitAnim)
.add(containerViewId, fragment, fragmentTag);
transaction = transaction.addToBackStack(null);
transaction.commit();
}
大多数情况都很完美,但很少发生崩溃(由Crashlytics检测到):
致命异常:java.lang.IllegalStateException:无法执行此操作 onSaveInstanceState之后的动作 在android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:2044) 在android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:2067) 在android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:680) 在android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:634) 在com.compagny.ui.BaseActivity.addFragment(BaseActivity.java:1495) 在com.compagny.ui.BaseActivity.addFragment(BaseActivity.java:1472) 在com.compagny.ui.training.TrainingActivity.setupView(TrainingActivity.java:309)
我不知道为什么;你对我的调查人员有什么建议吗?
非常感谢!
答案 0 :(得分:0)
活动只能在onResume和BEFORE onSaveInstanceState之后处理片段。