Шаги:
- Запросить разрешение от
Fragment
илиActivity
- Показать диалоговое окно диалога <<22 >
-
java.lang.IllegalStateException
: не удается выполнить это действие послеonSaveInstanceState
Это не происходит, когда я показываю диалог после некоторой задержки (используя postDelayed).
Согласно http://www.androiddesignpatterns.com/2013/08/fragment-transaction-commit-state-loss.html) на устройствах сотовой связи мы можем commit()
между onPause()
и onStop()
без каких-либо STATE LOSS или EXCEPTION.
Вот ссылка на образец источника проекта, файл журнала и запись.
https://drive.google.com/folderview?id=0BwvvuYbQTUl6STVSZF9TX2VUeHM&usp=sharing
Также я открыл проблему https://code.google.com/p/android/issues/detail?id=190966, но был отмечен как WorkAsIntended, и они предлагают просто перехватить исключение. Но это не решает проблему. Я знаю другие способы его решения, но разве это не ошибка Android?
UPDATE Статус ошибки снова присваивается. Надеюсь, скоро это будет исправлено. Мое временное решение
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// do your fragment transaction here
}
}, 200);