溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Activity的生命周期、生命周期流程以及和四種狀態介紹

發布時間:2020-06-02 21:29:46 來源:億速云 閱讀:744 作者:Leah 欄目:編程語言

這篇文章的知識點包括:Activity的生命周期介紹、生命周期流程介紹以及Activity的四種狀態,閱讀完整文相信大家對Activity會有一定的認識。

Activity生命周期的概念:

Activity作為Android的四大組件之一,非常的重要,也是最常用的四大組件,使用Activity必須要在AndroidManifest中進行注冊。Activity相當于一個servlet,我們的Activity處在這個容器中,一切創建實例、初始化、銷毀實例等過程都是容器來調用的,這也就是所謂的“Don't call me, I'll call you.”機制。

 

Activity的生命周期流程:

 onCreate()--->onStart()--->onResume()--->onPause()--->onStop()--->onDestory()

 onCreate():當activity是被創建時候,會自動運行該方法。該方法做一些初始化動作,比如創建views,設置數據到list等等,該方法提供了一個Bundle類型的變量,該變量中有這個activity以前的狀態信息,前提是以前存過這些信息。這個方法執行完后執行的是onStart()方法;若在onCreate方法中加入finish()方法,onCreate下一個運行onDestroy方法。

onRestart():把activity從onStop狀態喚醒時,會用onRestart方法,該方法優先于再次運行的onStart,運行完onRestart之后運行onStart。若在onRestart()方法中加入finish()語句,則還是會繼續運行onStart及后面的狀態方法直到onDestroy運行完

onStart():當activity對用戶可見時會調用onStart,當activity在前臺顯示時,會運行onResume;當activity還沒在前臺顯示就被隱藏(停止狀態)了會運行onStop(),比如在onStart方法中用了finish()方法的話,onStart()之后就會直接運行onStop->onDestroy。

onResume():當activity開始與用戶交互時,會調用onResume,并且為了用戶操作此時該activity位于activity棧的頂部。經過某些操作后該方法執行完后執行的是onPause()

onPause():當一個activity運行到onResume方法后,不管是這個activity要銷毀還是要暫?;蛲V?,都會調用該方法。這個方法之后有可能是onResume也有可能是onStop,若是在這個activity-A中打開一個不完全覆蓋這個activity-A的新activity-B,那么activity-A就會是onPause狀態,當activity-B退出時,activity-A就直接運行onResume(前提是onPause的方法執行完了,否則會等onPause方法執行完后才運行onResume方法,所以不建議在這個方法中執行CPU密集的操作)。若是需要退出activity-A,那么下一個就會執行onStop。onPause()用于提交未保存發生變化了的持久化數據,及停止動畫及其他其他比較消耗CPU的事件(比如廣播接收器,傳感器(比如GPS),或者消耗電量的資源),這是為了更好的運行新的activity。

onStop():當這個activity完全看不見的時候,會調用onStop方法,因為另一個activity會調用onResume并且覆蓋這個activity。以下三種情況都會使這個activity調用onStop()方法,第一種是一個新的activity被執行,第二種是一個已經存在的activity被切換到最前端,第三種是這個activity要被銷毀。如果通過用戶召回這個activity,那么會調用onRestart方法;若這個activity要被銷毀,則調用onDestroy方法。

onDestroy():當activity銷毀前會調用該方法,比如發生如下情況:activity調用了finish()方法來結束這個activity,或者因為系統為了節省空間而臨時銷毀這個activity,這兩個情況可以通過isFinishing()方法判斷。

 

Activity的四個狀態:

1、running->當前顯示在屏幕的activity(位于任務棧的頂部),用戶可見狀態。

2、poused->依舊在用戶可見狀態,但是界面焦點已經失去,此Activity無法與用戶進行交互。

3、stopped->用戶看不到當前界面,也無法與用戶進行交互 完全被覆蓋。

4、killed->當前界面被銷毀,等待這系統被回收。

 

看完上述內容,你們對Activity有進一步的了解嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女