對於我正在編寫的當前應用程序,我實現了一個導航抽屜(具有向後兼容性的默認Android方式)。 因此,從NAV抽屜選擇一個菜單元素,然後我做到這一點(addPreviousToBackStack始終是假的用於測試):重新打開和替換片段時,Android應用程序崩潰
private void replaceFragment(final Fragment fragment, final boolean addPreviousToBackStack) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.activity_main_fragment_container, fragment);
if(addPreviousToBackStack) {
fragmentTransaction.addToBackStack(fragment.getTag());
}
fragmentTransaction.commit();
currentFragment = fragment;
}
所以,當我啓動應用程序的工作原理就像一個魅力。然後我使用後退按鈕關閉應用程序。如果我然後重新打開應用程序(無論如何:通過長按主頁按鈕或通過快捷方式)應用程序開始在初始屏幕(onCreate被稱爲),然後我打開導航抽屜,選擇一個菜單項和應用程序崩潰。
這是我的例外:「java.lang.IllegalStateException:以後的onSaveInstanceState無法執行此操作」
而且它正好發生在我行,我做
fragmentTransaction.commit();
我不知道爲什麼當應用程序重新打開時,我得到這個,而不是當應用程序最初打開時。任何線索?
這是Android的老式問題:)也許[我的答案來自類似的問題](http://stackoverflow.com/a/13987336/1051783)將幫助你。 – gunar
嗯,沒有你的好方法或非正統的方式爲我工作...我試圖在4.3設備(星系連結) – dirkvranckaert