崩溃信息如下:
STACK_TRACE=java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.p.g(FragmentManager.java:1538)at android.support.v4.app.p.z(FragmentManager.java:1556)
at android.support.v4.app.BackStackRecord.z(BackStackRecord.java:696)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:662)
at ....
原因是activity被销毁回收后,还在执行一些UI操作,如fragment替换,dialog显示等。
我遇到的是fragment替换
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.search_result, mSearchFragment);
ft.commit();
解决方法:
if (isFinishing()) {
return;
}
...
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.search_result, mSearchFragment);
ft.commitAllowingStateLoss();