20. 在debug带有android.support.v4的包时,结果出现下面的错误:
05-10 15:47:09.850: E/AndroidRuntime(12744): java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
比较完整的stack如下:
1 | 05 - 10 15 : 47 : 06.470 : W/dalvikvm( 12744 ): threadid= 1 : thread exiting with uncaught exception (group= 0x40a4b1f8 ) |
2 | 05 - 10 15 : 47 : 09.850 : E/AndroidRuntime( 12744 ): FATAL EXCEPTION: main |
3 | 05 - 10 15 : 47 : 09.850 : E/AndroidRuntime( 12744 ): java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState |
4 | 05 - 10 15 : 47 : 09.850 : E/AndroidRuntime( 12744 ): at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java: 1299 ) |
5 | 05 - 10 15 : 47 : 09.850 : E/AndroidRuntime( 12744 ): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java: 1310 ) |
6 | 05 - 10 15 : 47 : 09.850 : E/AndroidRuntime( 12744 ): at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java: 541 ) |
7 | 05 - 10 15 : 47 : 09.850 : E/AndroidRuntime( 12744 ): at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java: 525 ) |
8 | 05 - 10 15 : 47 : 09.850 : E/AndroidRuntime( 12744 ): at android.support.v4.app.DialogFragment.show(DialogFragment.java: 123 ) |
我看到上面有提到onSaveInstanceState(),于是就重写了下这个.像上面说的不能调用super.我调用了,而且居然就tmd没有错误提示了..
1:在FreameDialog里加onSaveInstanceState(),我碰到的亲故康不是去掉super。onSaveInstanceState(),而是
原封不动的重写,就不怎么报错了,不过好像偶尔碰到过一次错误,不频繁了。估计是代码内部bug,
一直在Activity里重写onSaveInstanceState方法,所以一直解决不了,困扰了很久。