在工作中会定时解决crash问题,此篇文章是对遇到的crash进行记录。持续更新。。。。。。
1.Fatal Exception: java.lang.IllegalStateException:Fragment CustomerSearchFragment{ac94a87} not attached to Activity
问题截图:
问题原因:Fragment还没有attach到Activity上就调用Fragmennt的getRources方法。
解决办法:
if(isAdded()){
textView.setTextColor(getResources().getColor(R.color.main_color));
}
2.Fatal Exception: java.lang.IllegalStateException:Can not perform this action after onSaveInstanceState
问题截图:
问题原因:
调用FragmentActivity的onBackPressed方法,查看源码
@Override
public void onBackPressed() {
if (!mFragments.getSupportFragmentManager().popBackStackImmediate()) {
super.onBackPressed();
}
}
所以当Activity处于onSaveInstanceState状态之后时,调用onBackPressed会进行Fragment退栈操作报错。
所以:如果使用onBackgress(),假如Activity有添加管理frgament回退的话,调用该方法是不会退出Activity的.直到Fragment回退栈清空,才会退出Activity.
如果使用finish(),那么就会直接退出Activity。
参考https://blog.youkuaiyun.com/EdisonChang/article/details/49873669
解决方法:
使用finish()代替super.onBackPressed()。