科技生活動態:activity生命周期方法

導讀跟大家講解下有關activity生命周期方法,相信小伙伴們對這個話題應該也很關注吧,現在就為小伙伴們說說activity生命周期方法,小編也收集到

跟大家講解下有關activity生命周期方法,相信小伙伴們對這個話題應該也很關注吧,現在就為小伙伴們說說activity生命周期方法,小編也收集到了有關activity生命周期方法的相關資料,希望大家看到了會喜歡。

近來回顧了一下關于Activity的生命周期,參看了相關書籍和官方文檔,也有了不小的收獲,對于以前的認知有了很大程度上的改善,在這里和大家分享一下。

Activity相當于一個servlet,我們的Activity處在這個容器中,一切創建實例、初始化、銷毀實例等過程都是容器來調用的,這也就是所謂的“Don't call me, I'll call you.”機制。(推薦學習:Java視頻教程)

我們來看一下這一張經典的生命周期流程圖:

activity.jpg

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要銷毀還是要暫停或停止,都會調用該方法。這個方法之后有可能是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()方法判斷

更多Java相關技術文章,請訪問Java開發教程欄目進行學習!

以上就是activity生命周期方法的詳細內容,更多請關注php中文網其它相關文章!

來源:php中文網

免責聲明:本文由用戶上傳,如有侵權請聯系刪除!