Android生命週期例子小解

234931075a42

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文件

234931100aaw

234931135e7i

234931172i8c

2349312199ez

234931263lww

SecondLifeCyle.java文件中

23493129netp

ThridLifeCyle.java  文件中

2349313300dh

Main.xml文件中

23493136q33q

Second.xml

23493140awzs

Thirid.xml文件中

23493144op06

要在AndroidManifest.xml文件中添加兩句話

23493166mqe5

效果顯示:

2349314774m6

當點擊button按鈕時

234931542nhr

點擊button按鈕時返回上個界面

2349314774m6

點擊對話框按鈕時出現

23493157c330

當點擊退出按鈕時

23493161udzn

點擊取消則返回當前頁面,點擊肯定則退出當前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 文件中添加這兩個方法

0_13234931718i8i

十二、若是在這個時候再點擊  小房子 的那個鍵

   或

     按下電源按鍵(關閉屏幕顯示)時

  或

     長按HOME鍵,選擇運行其餘的程序時

onSaveInstanceState() ---  onPause() --  onStop()

其實點擊這個鍵 能夠理解爲強制性的離開當前的activity 並無獲得個人贊成 ,在這個時候會執行 onSaveInstanceState () 這個方法 保存當前activity的進度 ,就比如你在手機上看小說,忽然來了一個電話,手機會保存小說的進度,當你接完電話的時候小說會讀取你接電話以前的進度

1三、在執行了 12 的基礎上 再進入這個程序中

onRestart() ---  onStart() ---  onResume()

復甦,從新開始

onSaveInstanceState方法和onRestoreInstanceState方法不必定是成對的被調用的,onRestoreInstanceState被調用的前提是,activity 確實被系統銷燬了

相關文章
相關標籤/搜索