在我的应用程序中,当操作系统因配置更改而重新创建我的应用程序时,我需要从事务中删除一组片段。我想按照以下方式做到这一点;
@Override
public void onCreate(Bundle savedInstanceState) {
if (savedInstanceState != null) {
FragmentManager fm = getSupportFragmentManager();
List<android.support.v4.app.Fragment> fragments = fm.getFragments();
for (Fragment fragment : fragments) {
if (fragment != null) {
if (!((fragment instanceof FragmentType1) ||
(fragment instanceof FragmentType2) ||
(fragment instanceof FragmentType3))) {
FragmentTransaction trans = fm.beginTransaction();
trans.remove(fragment).commit();
}
}
}
}
}
虽然trans.remove(fragment).commit()
已成功执行,但调试显示这些片段仍在FragmentManager
中。谁能说出我在这里做错了什么。