Activity巢狀多個fragment時,onResume的處理
阿新 • • 發佈:2019-01-24
問題:當Activity裡有多個fragment時,其中fragmentA根據需求,需要在onResume時需要做請求資料等操作,但是如果直接在fragmentA裡的onResume裡寫東西,當從其他頁面返回到fragmentB和fragmentC時,fragmentA裡的onResume也會走,這樣很浪費流量浪費資源。
問題原因:fragment的生命週期是跟著它所在的activity一起走的,當從其他頁面返回到本activity時,本activity會走onResume的生命週期,這個時候本activity裡的所有fragment也都會走各個fragment重寫的onResume裡的程式碼。
解決方法:
不在fragmentA的onResume裡寫,而改成下面這樣寫,不可見時不操作,可見時再操作:
- @Override
- publicvoid onHiddenChanged(boolean hidden) {
- super.onHiddenChanged(hidden);
- if (hidden) {
- UtilsTools.Log_e(TAG, " --- 不可見()");
- } else {
- initData();
-
UtilsTools.Log_e(TAG, " --- 當前可見()"
- }
- }