Android Fragment注意點

持續更新中…

Can not perform this action after onSaveInstanceState

解決方案:
不能在onSaveInstanceState之後的生命週期裏面commit fragment
不要在子線程commit fragment 已經走完onSaveInstanceState

getActivity() == null

引起原因:
onDetach 之後,調用了getActivity()
解決方案:
在onAttach() 裏賦值,使用mActivity代替getActivity(),有內存泄露風險,但是在異步任務沒停止的情況下,本身可能就已經泄露,相比Crash,這種做法相對“安全”些。

fragment 重疊

屏幕旋轉 activity 生命週期
豎屏 -》 橫屏 1
橫屏 -》 豎屏 2
android:configChanges=“orientation”
sdk > 23 :
走 onConfigurationChanged
sdk < 23 :?

引起原因:
onCreate add fragment
onDestroy
屏幕旋轉 onCreate 又會執行 又會重新add一次 fragment (系統自動恢復了一個 )
內存重啓: fragment 重疊 ( 接了個電話,系統內存不足,殺掉了你的activity )
打開手機上的“開發者選項”中的“不保留活動”選項,模擬內存重啓
解決方案:
1. onSaveInstanceState activity失去自動存儲的功能 super
2. if(savedInstanceState == null){add fragment }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章