Getting exception as Failure saving state: active Fragment has cleared index: -1 when I am pressing home button of android device

只愿长相守 提交于 2019-12-05 11:26:45
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState, this, TAG_TAFFER_TIME);
    mFragmentHolder = (RelativeLayout) findViewById(R.id.fragment);
    mFragmentTransaction = getSupportFragmentManager().beginTransaction();
    mFragmentTransaction.add(mFragmentHolder.getId(), mFragmentTafferTime, TAG);
    mFragmentTransaction.addToBackStack(TAG);
    mFragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
    mFragmentTransaction.commit();
  } 

// On fragment change try to use this function
private void changeFragment(SherlockFragment fragment, String tag) {
    try {
        mFragmentTransaction.replace(mFragmentHolder.getId(), fragment, tag);
        mFragmentTransaction.addToBackStack(tag);
        mFragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
        mFragmentTransaction.commit();
    } catch (Exception exception) {

    }
}
yafei duan

In my case,I did this worked.

      @Override
      public void onDestroyView() {
        super.onDestroyView();
         if (mActivity.getSupportFragmentManager() != null && mAlbumFragment != null && 
             mAlbumFragment.isAdded()) {
             FragmentTransaction trans = 
             mActivity.getSupportFragmentManager().beginTransaction();
             trans.remove(mAlbumFragment).commitAllowingStateLoss();
        }
    }

I also replaced FragmentTransaction.add() to FragmentTransaction.replace(). If you are using a single fragment, you can try just this. I think it can solve the problem with just doing this.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!