Android Activity的生命周期詳細(xì)介紹
Android Activity的生命周期詳細(xì)介紹
生命周期描述的是一個(gè)類從創(chuàng)建(new出來(lái))到死亡(垃圾回收)的過(guò)程中會(huì)執(zhí)行的方法。在這個(gè)過(guò)程中,會(huì)針對(duì)不同的生命階段調(diào)用不同的的方法。
Activity是Android中四大組件之一,是最常見的應(yīng)用組件,也是用的最多的組件,它能夠提供一個(gè)界面與用戶進(jìn)行交互。Activity從創(chuàng)建到銷毀有多種狀態(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-->銷毀;onStart-->可見與onStop-->不可見;onResume-->可編輯(焦點(diǎn))和onPause-->未獲得焦點(diǎn)。最后還有一個(gè)方法是onRestart,這個(gè)方法在什么時(shí)候調(diào)用呢?當(dāng)Activity被onStop后,但是并沒(méi)有onDestory,即并沒(méi)有被銷毀時(shí),用戶重新回到當(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)用戶可見,但是用戶還不能與之進(jìn)行交互 protected void onStart() { super.onStart(); Log.e(TAG, "onStart......."); } @Override // 該狀態(tài)是Activity獲得用戶焦點(diǎn),用戶可以與之進(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不可見時(shí)調(diào)用 protected void onStop() { super.onStop(); Log.e(TAG, "onStop......."); } @Override //與onCreate對(duì)應(yīng),當(dāng)Activity被銷毀時(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。用戶在點(diǎn)擊返回鍵的時(shí)候,Activity會(huì)銷毀,這時(shí)Activity先是不可編輯,再是不可見,最后被銷毀。而當(dāng)用戶點(diǎn)擊home鍵的時(shí)候,即表示退回到桌面,這時(shí)的Activity并不會(huì)被銷毀,所以這里現(xiàn)實(shí)不可編輯,再是不可見,這時(shí)并不會(huì)調(diào)用onDestory方法被銷毀,此時(shí)再點(diǎn)擊進(jìn)入該應(yīng)用,會(huì)調(diào)用onRestart方法,不再是調(diào)用Activity,然后再是調(diào)用onStart,onResume。
下面是Activity的生命周期圖:
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Android 編輯頭像功能簡(jiǎn)單實(shí)現(xiàn)實(shí)例(圖片選取,裁剪)
這篇文章主要介紹了Android 編輯頭像功能簡(jiǎn)單實(shí)現(xiàn)實(shí)例(圖片選取,裁剪),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-06-06Android打包篇:Android Studio將代碼打包成jar包教程
這篇文章主要介紹了Android打包篇:Android Studio將代碼打包成jar包教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Android 網(wǎng)絡(luò)html源碼查看器詳解及實(shí)例
這篇文章主要介紹了Android 網(wǎng)絡(luò)html源碼查看器詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-03-03Android?DialogFragment使用之底部彈窗封裝示例
這篇文章主要為大家介紹了Android?DialogFragment使用之底部彈窗封裝示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Android 自定義對(duì)話框 showSetPwdDialog
這篇文章主要介紹了Android 自定義對(duì)話框 showSetPwdDialog的相關(guān)資料,需要的朋友可以參考下2016-03-03Android強(qiáng)制設(shè)定橫屏?xí)r,SurfaceView一直黑屏
本文主要介紹了Android強(qiáng)制設(shè)定橫屏?xí)r,SurfaceView一直黑屏的方法。具有一定的參考作用,下面跟著小編一起來(lái)看下吧2017-01-01Android 列表倒計(jì)時(shí)的實(shí)現(xiàn)的示例代碼(CountDownTimer)
本篇文章主要介紹了Android 列表倒計(jì)時(shí)的實(shí)現(xiàn)的示例代碼(CountDownTimer),具有一定的參考價(jià)值,有興趣的可以了解一下2017-09-09不依賴于Activity的Android全局懸浮窗的實(shí)現(xiàn)
在Android應(yīng)用開發(fā)中,經(jīng)常要遇到做全局懸浮窗的效果,本文的內(nèi)容主要是如何不依賴于Activity的全局懸浮窗的實(shí)現(xiàn)及原理,有需要的可以參考。2016-07-07