本文主要是日常開發(fā)遇到的閃退,以及坑,方便以后查閱。
注:其中復(fù)現(xiàn)路徑不唯一,可以理解為舉例
1.?Can not perform this action after onSaveInstanceState
復(fù)現(xiàn)路徑:在網(wǎng)絡(luò)請求回調(diào)里調(diào)用onBackpress();
bug原因:在FragmentActivity中,網(wǎng)絡(luò)請求回調(diào)之前,用戶點(diǎn)了返回鍵,此時(shí)系統(tǒng)就調(diào)用了onSaveInstanceState 方法,這個(gè)方法里面會(huì)調(diào)用 FragmentManager saveAllState 方法,將fragment 的狀態(tài)保存,在狀態(tài)保存后用戶又主動(dòng)調(diào)了 onBackPressed ,而這個(gè)方法的超類super.onBackPressed 方法會(huì)判斷FragmentManager 是否保存了狀態(tài),如果已經(jīng)保存就會(huì)拋出IllegalStateException 的異常 。
解決,方法:onBackpress()替換為finish()