日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Android應(yīng)用程序----Activity生命周期(2)

 松林園 2021-04-25

Android應(yīng)用程序----Activity生命周期(1)

Activity事件回調(diào)函數(shù)的調(diào)用順序 


Activity生命周期分類

Activity的生命周期可分為全生命周期、可視生命周期和活動生命周期

每種生命周期中包含不同的事件回調(diào)函數(shù)


全生命周期 

全生命周期是從Activity建立到銷毀的全部過程,始于onCreate(),結(jié)束于onDestroy() 

使用者通常onCreate()中初始化Activity所能使用的全局資源和狀態(tài),并在onDestroy()中釋放這些資源 

在一些極端的情況下,Android系統(tǒng)會不調(diào)用onDestroy()函數(shù),而直接終止進程



可視生命周期 

可視生命周期是Activity在界面上從可見到不可見的過程,開始于onStart(),結(jié)束于onStop()



可視生命周期 

onStart()一般用來初始化或啟動與更新界面相關(guān)的資源 

onStop()一般用來暫停或停止一切與更新用戶界面相關(guān)的線程、計時器和服務(wù) 

onRestart()函數(shù)在onSart()前被調(diào)用,用來在Activity從不可見變?yōu)榭梢姷倪^程中,進行一些特定的處理過程 

onStart()onStop()會被多次調(diào)用 

onStart()onStop()也經(jīng)常被用來注冊和注銷BroadcastReceiver



活動生命周期 

活動生命周期是Activity在屏幕的最上層,并能夠與用戶交互的階段,開始于onResume(),結(jié)束于onPause() 

Activity的狀態(tài)變換過程中onResume()onPause()經(jīng)常被調(diào)用,因此這兩個函數(shù)中應(yīng)使用更為簡單、高效的代碼


活動生命周期 

onPause()是第一個被標(biāo)識為“可終止”的函數(shù) 

onPause()返回后,onStop()onDestroy()隨時能被Android系統(tǒng)終止 

onPause()常用來保存持久數(shù)據(jù),如界面上的用戶的輸入信息等




onPause()onSaveInstanceState()的區(qū)別

    這兩個函數(shù)都可以用來保存界面的用戶輸入數(shù)據(jù),他們的區(qū)別在于


onPause()一般用于保存持久性數(shù)據(jù),并將數(shù)據(jù)保存在存儲設(shè)備上的文件系統(tǒng)或數(shù)據(jù)庫系統(tǒng)中的 

onSaveInstanceState()主要用來保存動態(tài)的狀態(tài)信息,信息一般保存在Bundle 

Bundle是能夠保存多種格式數(shù)據(jù)的對象 

onSaveInstanceState()保存在Bundle中的數(shù)據(jù),系統(tǒng)在調(diào)用onRestoreInstanceState()onCreate()時,會同樣利用Bundle將數(shù)據(jù)傳遞給函數(shù)


舉例:建立一個新的Android工程 

工程名稱:ActivityLifeCycle 

包名稱:edu.hrbeu.ActivityLifeCycle 

Activity名稱:ActivityLifeCycle


ActivityLifeCycle.java文件的代碼


上面的程序主要通過在生命周期函數(shù)中添加“日志點”的方法進行調(diào)試,程序的運行結(jié)果將會顯示在LogCat 

為了顯示結(jié)果易于觀察和分析,在LogCat設(shè)置過濾器LifeCycleFilter,過濾方法選擇by Log Tag,過濾關(guān)鍵字為LIFTCYCLE


全生命周期 

啟動和關(guān)閉ActivityLifeCycle LogCat輸出 

啟動ActivityLifeCycle 

按下模擬器的“返回鍵” 

關(guān)閉ActivityLifeCycle 

LogCat輸出結(jié)果

函數(shù)的調(diào)用順序:onCreate() onStart() onResume() onPause() onStop() onDestroy()

調(diào)用onCreate()函數(shù)分配資源

調(diào)用onStart()Activity顯示在屏幕上 

調(diào)用onResume()獲取屏幕焦點 

調(diào)用onPause()、onStop()onDestroy(),釋放資源并銷毀進程


可視生命周期

狀態(tài)轉(zhuǎn)換 

啟動ActivityLifeCycle 

“呼出/接聽鍵”啟動內(nèi)置的撥號程序 

再通過“返回鍵”退出撥號程序 

ActivityLifeCycle重新顯示在屏幕中 

可視生命周期的LogCat輸出結(jié)果


可視生命周期 

函數(shù)的調(diào)用順序: onSaveInstanceState () onPause() onStop() onRestart() onStart() onResume() 

調(diào)用onSaveInstanceState()函數(shù)保存Activity狀態(tài) 

調(diào)用onPause()onStop(),停止對不可見Activity的更新

調(diào)用onRestart()恢復(fù)需要界面上需要更新的信息 

調(diào)用onStart()onResume()重新顯示Activity,并接受用戶交互

開啟IDA的可視生命周期Dev Tools Development Settings Immediately destroy activities (IDA)下開啟IDA



活動生命周期 

活動生命周期的LogCat輸出 

啟動ActivityLifeCycle 

通過“掛斷鍵”使模擬器進入休眠狀態(tài) 

再通過“掛斷鍵”喚醒模擬器 

LogCat的輸出結(jié)果


函數(shù)調(diào)用順序如下:onSaveInstanceState() onPause() onResume() 

調(diào)用onSaveInstanceState ()保存Activity的狀態(tài) 

調(diào)用onPause()停止與用戶交互 

調(diào)用onResume()恢復(fù)與用戶的交互



    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多