Итак, я столкнулся с проблемой infamous Can not perform this action after onSaveInstanceState, и мне сложно определить, как ее исправить.Вход в систему LogGan в ViewPager - Не удается выполнить это действие после onSaveInstanceState
В настоящее время я могу вызвать его, выйдя из приложения с помощью меню onNavigationItemSelected
.
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
FirebaseAuth.getInstance().signOut();
goToLogin();
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
private void goToLogin() {
Intent x = new Intent(MainActivity.this, LoginActivity.class);
startActivity(x);
finish();
}
Хотя, когда я вхожу обратно в приложение
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivityForResult(intent, REQUEST_SIGNUP);
finish();
Затем попытаться щелкнуть в целях утилизатор предмета
CompletedViewPagerFragment completedViewPagerFragment = new CompletedViewPagerFragment();
Bundle bundle = new Bundle();
bundle.putInt(CompletedViewPagerFragment.KEY_COMPLETED_SELECTED, index);
completedViewPagerFragment.setArguments(bundle);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.placeholder, completedViewPagerFragment, VIEWPAGER_FRAGMENT);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Я получаю onSaveInstanceState ошибку
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1832)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1850)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:643)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:603)
at com.example.jack.mhealth.MainActivity.onRecordingSelected(MainActivity.java:295)
I на соблазн использовать .commitAllowingStateLoss(), хотя это дает мне активность была уничтожена ошибку
java.lang.IllegalStateException: Activity has been destroyed
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1854)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:643)
at android.support.v4.app.BackStackRecord.commitAllowingStateLoss(BackStackRecord.java:608)
at com.example.jack.mhealth.MainActivity.onRecordingSelected(MainActivity.java:294)
Я действительно потерял то, что пошло не так между каротаж, и заканчивая MainActivity, чтобы затем снова войти в систему и вызывая, что ViewPager для разрыва.
Когда приложение является свежим, оно переходит прямо на экран входа в систему, а затем входит в систему из MainActivity: 75 работает как ожидается при входе в систему. Мне нужно как-то сбросить пейджер представления?