【发布时间】:2019-11-12 08:29:25
【问题描述】:
编辑:这似乎只有在我之前的活动是横向的并且 setRequestedOrientation() 是纵向的情况下才会发生,这可能是什么问题?
我在一个活动中有一个代码,它启动一个对 REST API 的 Volley 请求以检索一些数据,并有一个回调,如果数据被成功检索,它将启动一个片段。但是这只适用于纵向模式,在横向模式下,它会抛出“片段管理器已被销毁”的异常。
我似乎找不到这个问题的根源,因此我无法尝试任何替代解决方案。
这是我这个活动的 onCreate() 方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(SettingsManager.getOrientationSettings(this));
setContentView(R.layout.activity_settings);
findViews();
setListeners();
getSettings();
}
goSettings() 将检索数据,设置请求的方向将是 ActivityInfo.SCREEN_ORIENTATION_PORTRAIT 或 ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE。
我的 loadFirstPage() 方法:
private void loadFirstPage() {
VMSSettingsPageOneFragment fragment = new VMSSettingsPageOneFragment();
FragmentManager fm = getSupportFragmentManager();
fm.beginTransaction()
.replace(R.id.settings_fragment_container, fragment)
.commit();
}
错误信息:
E/FileUtils: File Write Exception
java.lang.IllegalStateException: FragmentManager has been destroyed
at androidx.fragment.app.FragmentManager.enqueueAction(FragmentManager.java:1853)
at androidx.fragment.app.BackStackRecord.commitInternal(BackStackRecord.java:321)
at androidx.fragment.app.BackStackRecord.commit(BackStackRecord.java:286)
at com.timeteccloud.icomm.platformVMS.settingsActivity.VMSSettingsActivity.loadFirstPage(VMSSettingsActivity.java:87)
【问题讨论】:
-
您找到解决方案了吗?
-
对我来说同样的问题,还没有解决方案
-
似乎是一个解决方案:stackoverflow.com/a/10852340/853191
标签: android android-fragments fragmentmanager