发送广播后跳转activity问题折腾了一天.
一开始以为是广播发重复了.没解决.
然后看到了Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
生命周期的问题.知道了原因
广播发送后activity在某种场景下处于被kill 掉的边缘,系统就调用了onSaveInstanceState 方法,这个方法里面会调用 FragmentManager saveAllState 方法,将fragment 的状态保存,在状态保存后用户又主动调了 onBackPressed ,而这个方法的超类super.onBackPressed 方法会判断FragmentManager 是否保存了状态,如果已经保存就会抛出IllegalStateException 的异常 。然后广播接收的时候找不到activity
很简单:重写下
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
}