Пожалуйста, проверьте мой ответ здесь . В основном я просто должен был:
@Override
protected void onSaveInstanceState(Bundle outState) {
//No call for super(). Bug on API Level > 11.
}
Не делайте вызов super()
по методу saveInstanceState
. Это было бесполезно ...
Это известная ошибка в пакете поддержки.
Если вам нужно сохранить экземпляр и добавить что-то в свой outState
Bundle
, вы можете использовать следующее:
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putString("WORKAROUND_FOR_BUG_19917_KEY", "WORKAROUND_FOR_BUG_19917_VALUE");
super.onSaveInstanceState(outState);
}
В конце концов, правильное решение было (как в комментариях) для использования:
transaction.commitAllowingStateLoss();
при добавлении или выполнении FragmentTransaction
, вызывающего Exception
.