情形一:啟動應用載入activity和fragment
activity::oncreate
fragment::onattach
fragment::oncreate
fragment::oncreateview
fragment::onactivitycreate
activity::onstart
fragment::onsatrt
activity::onresume
fragment::onresume
情形二:fraga->fragb->fraga(fragment不加入回退棧)
銷毀fragmenta:
啟動fragmentb:
銷毀fragmentb:
啟動fragmenta:
啟動過程如下
onattach
oncreate
oncreateview
onactivitycreate
onsatrt
onresume
銷毀過程如下:
onpause
onstop
ondestroyview
ondestroy
ondetach
在不加入回退棧的情況下,無論多少fragment之間的切換,都遵循啟動下乙個,銷毀上乙個的原則,在螢幕不旋轉的情況下activity是不會發生任何變化的
情形三:旋轉fragment(與加不加入回退棧沒關係,過程都一樣)
activity和fragment都會被銷毀,其中銷毀過程fragment會儲存狀態
fragment::onpause
activity::onpause
fragment::ons**einstancestate(儲存銷毀前的狀態)
fragment::onstop
activity onstop
fragment::ondestroyview
fragment::ondestroy
fragment::ondetach
activity::ondestroy
建立activity和fragment(與一開始啟動應用過程相同)
activity::oncreate
fragment::onattach
fragment::oncreate
fragment::oncreateview
fragment::onactivitycreated
fragment::onattach
fragment::oncreate
fragment::oncreateview
fragment::onactivitycreated
activity onstart
fragment::onstart
fragment::onstart
activity::onresume
fragment::onresume
fragment::onresume
情形四:fragmenta->fragmentb->fragmenta(兩者都加入回退棧)
停止fragmenta,但是不銷毀,與不加入回退棧相比唯一的不同就是不會被銷毀
fragmenta::onpause
fragmenta::onstop
fragmenta::ondestroyview
啟動fragmentb
"恢復"fragmenta,這種恢復會從fragment的oncreateview開始,重新繪製頁面,所以之前的所有資料都已經不在了,這就涉及到fragment的狀態儲存(下節待續)
oncreateview
onactivitycreated
onstart
onresume
Android入門之01術語Fragments
在android的早期,當它僅在手機上執行且沒有高解析度螢幕時,activity就足以構成ui並與使用者進行互動。然後是平板電腦和高解析度螢幕,建立在手機和平 板電腦上都能正常執行的應用程式變得越來越困難。開發人員面臨艱難的選擇。您選擇功能最弱的硬體作為目標,使其成為最不常見的分母,或者通過根據裝置...
lucene學習之一索引操作 Fragments
class fragments public static final string company domain example.com public static final string bad domain yucky domain.com private string getsendere...
關於activity和返回鍵
在乙個專案中,activity肯定是超過乙個的,此時返回鍵的存在會導致出現上乙個activity。這個雖然方便了使用者,但是,存在一定的隱患,如果沒有對上乙個activity進行處理的話,往往返回的是只需要操作一次的activity,比如乙個軟體的註冊頁面。intent mintent new in...