您好,登錄后才能下訂單哦!
? 最近寫了一個項目,使用開源中國的框架。整個項目就定義兩個Activity,一個主頁Activity,一個容器Activity。利用反射技術在容器Activity里裝Fragment。一開始,我還切以為喜,但是為什么這個世界是辯證的呢?
? 1)Activity里有launchMode,Fragment沒有,也是說Activity由棧來維護了,但是Fragment沒有,
? ?不過也可以用Stack自己來實現。容器Activity的launchMode不能寫死,要轉換成里面Fragment的
? ?launchMode。
? 2)Activity有key相關的事件,Fragment沒有,如果要在Fragment里監聽,需要從Activty里傳遞。
? 3)Fragment不需要注冊
? 4)Fragment比較輕量化
? 5)Fragment必需要依賴于Activity
?
? 6)請看官方Fragment的生命周期方法的描述,與Activity是的生命周期是息息相關的。如果主界面
? ? 由幾個Fragment組成,通過hide和show來組織Fragment,當show的時候,Fragment會自動的執行
? ? onStart與onResume方法,也就是Activity在show會走所有Fragment的這兩個方法。而這兩個方法
? ? 經常用于自動請求網絡數據,那么即使Fragment沒有“正直可見”卻走了這兩個方法,解決如下
? ??http://www.2cto.com/kf/201501/368954.html
? ??http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1021/1813.html
? ?我的代碼,在BaseFragment里設置一下:
? ?
@Override public?void?onResume()?{ ????super.onResume(); ????//可見才去加載數據 ????if(!isHidden()){ ????????onLazyLoad(); ????} }
?? 然后在onLazyLoad里即可進行請求網絡的操作。
https://blog.csdn.net/qq_36099573/article/details/79941936? ?(在Fragment里就調用Fragment的startActivityForResult方法,不要getActivity()之后再調用)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。