本文主要是日常开发遇到的闪退,以及坑,方便以后查阅。
注:其中复现路径不唯一,可以理解为举例
1. Can not perform this action after onSaveInstanceState
复现路径:在网络请求回调里调用onBackpress();
bug原因:在FragmentActivity中,网络请求回调之前,用户点了返回键,此时系统就调用了onSaveInstanceState 方法,这个方法里面会调用 FragmentManager saveAllState 方法,将fragment 的状态保存,在状态保存后用户又主动调了 onBackPressed ,而这个方法的超类super.onBackPressed 方法会判断FragmentManager 是否保存了状态,如果已经保存就会抛出IllegalStateException 的异常 。
解决,方法:onBackpress()替换为finish()
网友评论