? 最近寫了一個項目,使用開源中國的框架。整個項目就定義兩個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()之后再調用)
新聞名稱:Activity與Fragment比較
文章起源:http://vcdvsql.cn/article22/iipijc.html
成都網站建設公司_創新互聯,為您提供電子商務、App開發、品牌網站設計、網站內鏈、網站收錄、定制開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯