第二章 ?活動
在我的理解中活動的概念就是頁面,一個app可以有主頁面和其他頁面,即主活動和其他活動挣菲,每個活動有自己的布局富稻,布局就是呈現(xiàn)在用戶面前的東西,而布局中各控件的關(guān)系和事件則由活動的代碼控制
活動需要在一個xml代碼中進(jìn)行注冊
活動間的跳轉(zhuǎn)有顯示和隱式己单,總的來說就是一個是指名道姓的說要跳轉(zhuǎn)到哪個活動,另一個卻是跳轉(zhuǎn)到符合什么條件的活動上耙饰,這個條件由action和 category表示纹笼。我還不知道兩者的優(yōu)劣性。
活動有四種狀態(tài):運(yùn)行 暫停 停止 銷毀 ? 其中暫停是指能被看到但暫時不用苟跪,停止是指不被看到暫時不需用到如果系統(tǒng)缺內(nèi)存有可能這個活動被收回廷痘。。件已。笋额。有些軟件你停留在一個頁面太久然后手機(jī)卡了你退出這個頁面之后會發(fā)覺之前那個頁面好像重新啟動了一次 ?就是這個道理 ?如虎撲體育
Activity 類中定義了七個回調(diào)方法,覆蓋了活動生命周期的每一個環(huán)節(jié)
1.? onCreate()
這個方法你已經(jīng)看到過很多次了篷扩,每個活動中我們都重寫了這個方法兄猩,它會在活動第一次被創(chuàng)建的時候調(diào)用。你應(yīng)該在這個方法中完成活動的初始化操作鉴未,比如說加載布局枢冤、綁定事件等。
2.? onStart()
這個方法在活動由不可見變?yōu)榭梢姷臅r候調(diào)用铜秆。
3.? onResume()
這個方法在活動準(zhǔn)備好和用戶進(jìn)行交互的時候調(diào)用淹真。此時的活動一定位于返回棧的棧頂,并且處于運(yùn)行狀態(tài)连茧。
4.? onPause()
這個方法在系統(tǒng)準(zhǔn)備去啟動或者恢復(fù)另一個活動的時候調(diào)用核蘸。我們通常會在這個法中將一些消耗 CPU 的資源釋放掉,以及保存一些關(guān)鍵數(shù)據(jù)啸驯,但這個方法的執(zhí)行速度一定要快客扎,不然會影響到新的棧頂活動的使用。
5.? onStop()
這個方法在活動完全不可見的時候調(diào)用罚斗。它和 onPause()方法的主要區(qū)別在于虐唠,如果啟動的新活動是一個對話框式的活動,那么 onPause()方法會得到執(zhí)行惰聂,而 onStop()方法并不會執(zhí)行疆偿。
6.? onDestroy()
這個方法在活動被銷毀之前調(diào)用,之后活動的狀態(tài)將變?yōu)殇N毀狀態(tài)搓幌。
7.? onRestart()
這個方法在活動由停止?fàn)顟B(tài)變?yōu)檫\(yùn)行狀態(tài)之前調(diào)用杆故,也就是活動被重新啟動了。
以上七個方法中除了 onRestart()方法溉愁,其他都是兩兩相對的处铛,從而又可以將活動分為三
種生存期饲趋。
活動之間還有不同的啟動模式 個人覺得singleInstance最優(yōu)
后面還看了一點(diǎn)自定義控件 ?主要得導(dǎo)入其他開源代碼
而如果想實現(xiàn)一個活動多個布局的話那就得通過碎片這個概念的技巧實行了
晚安咯