activity生命周期知識點整理 Activity: 是一個應用組件,用戶可與其提供的屏幕進行交互。視窗通常會充滿屏幕,但也可以小於屏幕並浮動在其他視窗之上。 一個activity的什麼周期: 啟動運行狀態( onCreat() onStart() onResume() ) 暫停狀態( onPau ...
activity生命周期知識點整理
Activity:
是一個應用組件,用戶可與其提供的屏幕進行交互。視窗通常會充滿屏幕,但也可以小於屏幕並浮動在其他視窗之上。
一個activity的什麼周期:
啟動運行狀態( onCreat() onStart() onResume() )
暫停狀態( onPause() )
停止狀態( onStop() )
銷毀狀態( onDestory() )
onRestart從停止狀態在此啟用時調用
多個activity的生命周期狀態(舉例):
A activity B activity
onCteate
onStart
onResume
當A打開B的時候
onPause
onCreate
onStart
onResume
onStop
當B返回A的時候
onPause
onRestart
onStart
onResume
onStop
onDestory
Activity的橫豎屏切換生命周期狀態:
onCreate --> onStart --> onResume
切換:onPause --> onStop --> onDestroy
onCreate --> onStart --> onResume
A.切換時,有方法可以保存當前的一些數據
Protected void onSaveInstanceState( Bundle outState ){...}
將數據用putXxx( 鍵值對 );放入Bundle類型的數據outState中
在onCreate(...)方法中有參數Bundle saveInstanceState
可以,先判斷If( saveInstanceState !== null ) 是否為空。
不為空,getXxx( 鍵值對 );取出數據,放入該放入的位置,完成。
C. 生命周期狀態
onCreate --> onStart --> onResume --> onPause --> onSaveInstanceState -->
onStop --> onDestroy --> onCreate --> onStart --> onResume
小酌的小貼士:
1.activity的生命周期實際應用舉例:
例如如果一個應用有背景音樂,當你切換到其他應用時,此應用暫停但沒有銷毀,背景音樂會一直存在,一直播放。
比如你進入了接電話的狀態,但此應用也會一直播放音樂,造成用戶的困擾。
所以你可以在此應用的暫停,停止狀態時,做一些相應代碼解決此問題。