Bootstrap

java.lang.IllegalStateException崩溃处理——4种情形

此文包含java.lang.IllegalStateException的4种情形:


  • 1.java.lang.IllegalStateException: Fragment already added

  • **2.java.lang.IllegalStateException: Fragment MyFragment{xxx} not attached to Activity **

  • 3.java.lang.IllegalStateException: Fragment already active

  • **4.java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
    **


问题1:java.lang.IllegalStateException: Fragment already added异常的处理。

当快速双击调用FragmentTransaction.add()方法添加fragmentA,而fragmentA不是每次单独生成的,就会引起这个异常。
DialogFragment.show()内部调用了FragmentTransaction.add()方法,所以调用DialogFragment.show()方法时候也可能会出现这个异常。
解决方法:
在add()方法时候,先判断fragmentA.isAdded(),
如下调用可以避免该异常:

 

if(!fragmentA.isAdded()){
  FragmentManager manager = ((FragmentActivity)contex
;