今天做fragment切換、狀态儲存功能的時候,出現了這個錯誤:
定位發現是在調用fragmenttransition的commit()方法時發生的該問題,于是搜了下相關解答,得知:我使用的 commit方法是在activity的onsaveinstancestate()之後調用的,這樣會出錯,因為onsaveinstancestate方法是在該activity即将被銷毀前調用,來儲存activity資料的,如果在儲存玩狀态後再給它添加fragment就會出錯。
解決辦法:把commit()方法替換成 commitallowingstateloss()就行了,從名字上就能看出,這種送出是允許狀态值丢失的。到此問題得到完美解決,值的傳遞是你自己控制的,其效果是一樣的。