項(xiàng)目中的任何活動(dòng)都要重寫OnCreate()方法
如果是在XML引用一個(gè)id,就使用@id/id_name這種語法;如果你需要在XML中定義一個(gè)id,則要使用@+id/id_name;
onCreate():每個(gè)活動(dòng)中我們都重寫了這個(gè)方法,它會(huì)在活動(dòng)第一次被創(chuàng)建的時(shí)候調(diào)用。你應(yīng)該在這個(gè)方法中完成活動(dòng)的初始化操作,比如說加載布局、綁定事件等。
onDestroy():這個(gè)方法在活動(dòng)被銷毀之前調(diào)用,之后活動(dòng)的狀態(tài)將變成銷毀狀態(tài)。
這兩個(gè)方法:完整生存期?;顒?dòng)在onCreate()方法和onDestroy()方法之間所經(jīng)歷的,就是完整生存期。一般情況下,一個(gè)活動(dòng)會(huì)在onCreate()方法中完成各種初始化操作,而在onDestroy()方法中完成釋放內(nèi)存的操作。
onStart():在這個(gè)方法在活動(dòng)由不可見變成可見的時(shí)候調(diào)用。
onStop():這個(gè)方法在活動(dòng)完全不可見的時(shí)候調(diào)用。它和onpause()方法的主要區(qū)別在于,如果啟動(dòng)的新活動(dòng)是一個(gè)對(duì)話框式的活動(dòng),那么onPause()方法會(huì)得到執(zhí)行,而onStop()方法并不會(huì)執(zhí)行。
這兩個(gè)方法:可見生存期?;顒?dòng)在onStart()方法和onStop()方法之間所經(jīng)歷的,就是可見生存期。在可見生存期內(nèi),活動(dòng)對(duì)于用戶總是可見的,即便有可能無法和用戶進(jìn)行交互。我們可以通過這兩個(gè)方法,合理地管理那些對(duì)用戶可見的資源。比如在onStart()方法中對(duì)資源進(jìn)行加載,而在onStop()方法中對(duì)資源進(jìn)行釋放,從而保證處于停止?fàn)顟B(tài)的活動(dòng)不會(huì)占用過多內(nèi)存。
onResume(): 這個(gè)方法在活動(dòng)由停止?fàn)顟B(tài)變?yōu)檫\(yùn)行狀態(tài)之前調(diào)用,也就是活動(dòng)被重新啟動(dòng)了。
onPause(): 這個(gè)方法在系統(tǒng)準(zhǔn)備去啟動(dòng)或者恢復(fù)另一個(gè)活動(dòng)的時(shí)候被調(diào)用。我們通常會(huì)在這個(gè)方法中將一些消耗CPU的資源釋放掉,以及保存一些關(guān)鍵數(shù)據(jù),但這個(gè)方法的執(zhí)行速度一定要快,不然會(huì)影響到新的棧頂活動(dòng)的使用。
這兩個(gè)方法:前臺(tái)生存期?;顒?dòng)在onResume()方法和onPause()方法之間所經(jīng)歷的就是前臺(tái)生存期。在前臺(tái)生存期內(nèi),活動(dòng)總是處于運(yùn)行狀態(tài)的,此時(shí)的活動(dòng)是可以和用戶進(jìn)行交互的,我們平時(shí)看到和接觸最多的也就是這個(gè)狀態(tài)下的活動(dòng)。
onRestart():這個(gè)方法在活動(dòng)由停止?fàn)顟B(tài)變?yōu)檫\(yùn)行狀態(tài)之前調(diào)用,也就是活動(dòng)被重新啟動(dòng)了。
? ??
活動(dòng)的啟動(dòng)模式:
standard:? 每當(dāng)啟動(dòng)一個(gè)新的活動(dòng),它就會(huì)在返回棧中入棧,并處于棧頂?shù)奈恢谩?/p>
singleTop : 當(dāng)活動(dòng)的啟動(dòng)模式指定為singleTop,在啟動(dòng)活動(dòng)時(shí)如果發(fā)現(xiàn)返回棧的棧頂已經(jīng)是該活動(dòng),則以為可以直接使用它,不會(huì)再創(chuàng)建新的活動(dòng)實(shí)例。
singleTask:每次啟動(dòng)該活動(dòng)時(shí)系統(tǒng)首先會(huì)在返回棧中檢查是否存在該活動(dòng)的實(shí)例,如果發(fā)現(xiàn)已經(jīng)存在則直接使用該實(shí)例,并把在這個(gè)活動(dòng)之上的所有活動(dòng)統(tǒng)統(tǒng)出棧,如果沒有發(fā)現(xiàn)就會(huì)創(chuàng)建一個(gè)新的活動(dòng)實(shí)例。
singleInstance:(指定為singleleLnstance模式的活動(dòng)會(huì)啟用一個(gè)新的返回棧來管理這個(gè)活動(dòng))在這種模式下會(huì)有一個(gè)單獨(dú)的返回棧來管理這個(gè)活動(dòng),不管是哪個(gè)應(yīng)用程序來訪問這個(gè)活動(dòng),都共用的同一個(gè)返回棧,也就解決了共享活動(dòng)實(shí)例的問題。