Принудительное закрытие происходит при выполнении транзакции фрагмента с действием, которое идет в фоновом режиме - PullRequest
0 голосов
/ 10 февраля 2020

Сообщение об ошибке:

java .lang.IllegalStateException: невозможно выполнить это действие после onSaveInstanceState в android .support.v4.app.FragmentManagerImpl.checkStateLoss (FragmentManager. java: 2080) в android .support.v4.app.FragmentManagerImpl.popBackStackImmediate (FragmentManager. java: 837)

 /**
 * replace current fragment with another
 *
 * @param currentFragment current fragment for replace
 * @param newFragment     new fragment to add
 * @param tag             name of the fragment
 * @param layoutId        container layout for place fragment
 */
public static void showFragment(Fragment currentFragment, Fragment newFragment, String tag, int layoutId) {

    FragmentManager fragmentManager = currentFragment.getActivity().getSupportFragmentManager();
    // check if the fragment is in back stack
    boolean fragmentPopped = fragmentManager.popBackStackImmediate(tag, 0);
    if (fragmentPopped) {
        // fragment is pop from backStack
    } else {
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(layoutId, newFragment, tag);
        fragmentTransaction.addToBackStack(tag);
        fragmentTransaction.commitAllowingStateLoss();
    }
}

Я также изменил кодgmentTransaction.commit (); фрагментировать транзакцию.commitAllowingStateLoss (); и произошла та же ошибка.

код, используемый для вызова вышеуказанной транзакции фрагмента,

FragmentUtils.showFragment(CustomersFragment.this
            , new StoreFragment()
            , "CustomersFragment"
            , R.id.fragmentHolderFrmLyt);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...