Android Activity的生命周期詳細(xì)介紹
Android Activity的生命周期詳細(xì)介紹
生命周期描述的是一個(gè)類從創(chuàng)建(new出來(lái))到死亡(垃圾回收)的過(guò)程中會(huì)執(zhí)行的方法。在這個(gè)過(guò)程中,會(huì)針對(duì)不同的生命階段調(diào)用不同的的方法。
Activity是Android中四大組件之一,是最常見(jiàn)的應(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-->可見(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)有被銷毀時(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)用戶可見(jiàn),但是用戶還不能與之進(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不可見(jiàn)時(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先是不可編輯,再是不可見(jiàn),最后被銷毀。而當(dāng)用戶點(diǎn)擊home鍵的時(shí)候,即表示退回到桌面,這時(shí)的Activity并不會(huì)被銷毀,所以這里現(xiàn)實(shí)不可編輯,再是不可見(jiàn),這時(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自定義view實(shí)現(xiàn)推箱子小游戲
這篇文章主要為大家詳細(xì)介紹了android自定義view實(shí)現(xiàn)推箱子小游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
Android WorkManager實(shí)現(xiàn)后臺(tái)定時(shí)任務(wù)流程詳解
WorkManager是Android Jetpack的一個(gè)強(qiáng)大的組件,用于處理后臺(tái)耗時(shí)任務(wù)。后臺(tái)任務(wù)可以是一次性的,也可以是重復(fù)的,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-01-01
Android中的導(dǎo)航navigation的使用詳細(xì)步驟
在Android中,導(dǎo)航主要通過(guò)使用Navigation SDK來(lái)實(shí)現(xiàn),該SDK提供了一組工具和組件,可以幫助開(kāi)發(fā)人員構(gòu)建具有一致性和可訪問(wèn)性的用戶界面,這篇文章主要介紹了Android中的導(dǎo)航navigation的使用詳細(xì)步驟,需要的朋友可以參考下2024-04-04
Flutter給控件實(shí)現(xiàn)鉆石般的微光特效
這篇文章主要給大家介紹了關(guān)于Flutter給控件實(shí)現(xiàn)鉆石般的微光特效的相關(guān)資料,實(shí)現(xiàn)的效果非常不錯(cuò),非常適合大家做開(kāi)發(fā)的時(shí)候參考,需要的朋友可以參考下2021-08-08
淺談Android Studio導(dǎo)出javadoc文檔操作及問(wèn)題的解決
這篇文章主要介紹了淺談Android Studio導(dǎo)出javadoc文檔操作及問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Android實(shí)現(xiàn)瘋狂連連看游戲之開(kāi)發(fā)游戲界面(二)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)瘋狂連連看游戲之開(kāi)發(fā)游戲界面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
Android標(biāo)題欄最右邊添加按鈕的實(shí)例
這篇文章主要介紹了Android標(biāo)題欄最右邊添加按鈕的實(shí)例的相關(guān)資料,希望通過(guò)本文大家能掌握如何操作,需要的朋友可以參考下2017-09-09
Android開(kāi)發(fā)實(shí)現(xiàn)popupWindow彈出窗口自定義布局與位置控制方法
這篇文章主要介紹了Android開(kāi)發(fā)實(shí)現(xiàn)popupWindow彈出窗口自定義布局與位置控制方法,涉及Android彈出窗口功能、布局及屬性設(shè)置相關(guān)操作技巧,需要的朋友可以參考下2017-09-09

