Activity 從建立到進入運行態所觸發的事件 java
onCreate()-->onStart-->onResume() 佈局
從運行態到中止態所觸發的事件 3d
onPause()--->onStop() xml
從中止態到運行態所觸發事件 blog
onRestart()-->onStart()--->onResume() 生命週期
從運行態到暫停態所觸發事件 事件
onPause() get
從暫停態到運行態所觸發事件 it
onResume() 基礎
根據例子來詳細的介紹一下它的生命週期的過程(它所調用的方法):
首先先看一下例子:
Java文件有:ActivityLifeCyde.java 、 SecondLifeCyle.java、ThridLifeCyle.java
Xml佈局文件有:main.xml、second.xml、thirid.xml
首先是ActivityLifeCyde.java文件
SecondLifeCyle.java文件中
ThridLifeCyle.java 文件中
Main.xml文件中
Second.xml
Thirid.xml文件中
要在AndroidManifest.xml文件中添加兩句話
效果顯示:
當點擊button按鈕時
點擊button按鈕時返回上個界面
點擊對話框按鈕時出現
當點擊退出按鈕時
點擊取消則返回當前頁面,點擊肯定則退出當前Activity
下面則根據這個例子來解釋一下生命週期的調用過程
一、剛把程序運行起來的時候
onCreate() -- onStart() -- onResume()
二、當點擊Button按鈕的時候
onPause() -- onStop()
也就是說 進入另一個Activity的時候會暫停當前的Activity 而且中止
進入到另一個Activity的時候也會執行 1 中的過程 ,當再返回第一個Activity的時候也會執行 2 中同樣的過程
三、點擊對話框按鈕的時候
onPause()
這個時候只會把這個Activity 暫停 ,由於出現的對話框一樣也在這個Activity中,也就是說這個Activity並無中止,因此他不會調用onStop()這個方法,更不會調用onDestory() 消滅這個Activity ,也能夠理解爲 當前Activity失去了焦點, 就比如 一個頁面中有兩個文本框:文本1和文本2 , 光標由文本1 轉到文本2中 實際上就是這個過程
四、點擊對話框按鈕,而後再點擊返回鍵的時候
onPause() -- onResume()
當前暫停的Activity在暫停後再次使用的時候會調用onResume()這個方法 從新開始這個Activity
五、點擊退出按鈕,若是點擊取消的時候
在這個過程當中當前程序的生命週期是沒有任何變化的
六、點擊退出按鈕,若是點擊退出按鈕的時候
onPause() -- onStop() --- onDestroy()
退出的話就會把當前的activity結束並銷燬掉
七、運行程序,再返回
onCreate() -- onStart() -- onResume() -- onPause() -- onStop() --- onDestroy()
整個生命週期的調用
八、運行程序 ,再點擊手機鍵盤中的 小房子 的那個按鈕
onCreate() -- onStart() -- onResume() -- onPause() -- onStop()
這個時候Activity 是沒有被消滅的,只是把它暫停了,主頁把這個activity覆蓋了,至關於進站
九、在8的基礎上再點擊進入程序
onRestart() --- onStart() --- onResume()
把這個activity從暫停的狀態從新開始,調用onRestart()這個方法 ,而後再開始運行
十、長時間點擊 小房子 那個按鈕
這個動做是沒有執行任何方法,只是回到了主頁面
十一、在 執行了 10 的基礎上,再長時間點擊 小房子 那個按鈕 回到activity
onRestart() --- onStart() --- onResume()
而後在ActivityLifeCyde.java 文件中添加這兩個方法
十二、若是在這個時候再點擊 小房子 的那個鍵
或
按下電源按鍵(關閉屏幕顯示)時
或
長按HOME鍵,選擇運行其餘的程序時
onSaveInstanceState() --- onPause() -- onStop()
其實點擊這個鍵 能夠理解爲強制性的離開當前的activity 並無獲得個人贊成 ,在這個時候會執行 onSaveInstanceState () 這個方法 保存當前activity的進度 ,就比如你在手機上看小說,忽然來了一個電話,手機會保存小說的進度,當你接完電話的時候小說會讀取你接電話以前的進度
1三、在執行了 12 的基礎上 再進入這個程序中
onRestart() --- onStart() --- onResume()
復甦,從新開始
onSaveInstanceState方法和onRestoreInstanceState方法不必定是成對的被調用的,onRestoreInstanceState被調用的前提是,activity 確實被系統銷燬了