Android項(xiàng)目中如何使用Activity的生命周期?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
成都創(chuàng)新互聯(lián)網(wǎng)絡(luò)公司擁有10多年的成都網(wǎng)站開(kāi)發(fā)建設(shè)經(jīng)驗(yàn),1000多家客戶(hù)的共同信賴(lài)。提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)、網(wǎng)站定制、賣(mài)鏈接、建網(wǎng)站、網(wǎng)站搭建、響應(yīng)式網(wǎng)站開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)師打造企業(yè)風(fēng)格,提供周到的售前咨詢(xún)和貼心的售后服務(wù)
Android Activity的生命周期詳細(xì)介紹
生命周期描述的是一個(gè)類(lèi)從創(chuàng)建(new出來(lái))到死亡(垃圾回收)的過(guò)程中會(huì)執(zhí)行的方法。在這個(gè)過(guò)程中,會(huì)針對(duì)不同的生命階段調(diào)用不同的的方法。
Activity是Android中四大組件之一,是最常見(jiàn)的應(yīng)用組件,也是用的最多的組件,它能夠提供一個(gè)界面與用戶(hù)進(jìn)行交互。Activity從創(chuàng)建到銷(xiāo)毀有多種狀態(tài),從一種狀態(tài)到另一種狀態(tài)時(shí)會(huì)激發(fā)相應(yīng)的回調(diào)方法,這些回調(diào)方法包括:onCreate onDestory onStart onStop onResume onPause。這些方法都是兩兩對(duì)應(yīng)的,onCreate-->創(chuàng)建與onDestory-->銷(xiāo)毀;onStart-->可見(jiàn)與onStop-->不可見(jiàn);onResume-->可編輯(焦點(diǎn))和onPause-->未獲得焦點(diǎn)。最后還有一個(gè)方法是onRestart,這個(gè)方法在什么時(shí)候調(diào)用呢?當(dāng)Activity被onStop后,但是并沒(méi)有onDestory,即并沒(méi)有被銷(xiāo)毀時(shí),用戶(hù)重新回到當(dāng)前Activity時(shí),就調(diào)用onRestart方法,這里就不再是調(diào)用onCreate方法了。
public class MainActivity extends ActionBarActivity { private final static String TAG = "MainActivity"; @Override // Activity被創(chuàng)建時(shí)調(diào)用 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.e(TAG, "onCreate......."); } @Override // 該狀態(tài)用戶(hù)可見(jiàn),但是用戶(hù)還不能與之進(jìn)行交互 protected void onStart() { super.onStart(); Log.e(TAG, "onStart......."); } @Override // 該狀態(tài)是Activity獲得用戶(hù)焦點(diǎn),用戶(hù)可以與之進(jìn)行交互 protected void onResume() { super.onResume(); Log.e(TAG, "onResume......."); } @Override //與onResume對(duì)應(yīng),當(dāng)Activity失去焦點(diǎn)時(shí)調(diào)用 protected void onPause() { super.onPause(); Log.e(TAG, "onPause......."); } @Override //與onStart對(duì)應(yīng),當(dāng)Activity不可見(jiàn)時(shí)調(diào)用 protected void onStop() { super.onStop(); Log.e(TAG, "onStop......."); } @Override //與onCreate對(duì)應(yīng),當(dāng)Activity被銷(xiāo)毀時(shí)調(diào)用 protected void onDestroy() { super.onDestroy(); Log.e(TAG, "onDestroy......."); } @Override //Activity從后臺(tái)重新回到前臺(tái)調(diào)用 protected void onRestart() { super.onRestart(); Log.e(TAG, "onRestart......."); } }
Activity的完整生命周期:oncreate-->onstart-->onresume-->onpause-->onstop-->ondestory。用戶(hù)在點(diǎn)擊返回鍵的時(shí)候,Activity會(huì)銷(xiāo)毀,這時(shí)Activity先是不可編輯,再是不可見(jiàn),最后被銷(xiāo)毀。而當(dāng)用戶(hù)點(diǎn)擊home鍵的時(shí)候,即表示退回到桌面,這時(shí)的Activity并不會(huì)被銷(xiāo)毀,所以這里現(xiàn)實(shí)不可編輯,再是不可見(jiàn),這時(shí)并不會(huì)調(diào)用onDestory方法被銷(xiāo)毀,此時(shí)再點(diǎn)擊進(jìn)入該應(yīng)用,會(huì)調(diào)用onRestart方法,不再是調(diào)用Activity,然后再是調(diào)用onStart,onResume。
下面是Activity的生命周期圖:
關(guān)于Android項(xiàng)目中如何使用Activity的生命周期問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。