標籤:activity 生命週期
面試經常會被問到的:
Q:能說一下Activity的生命週期嗎?
Activity生命週期如下:
onCreat
onStart
onResume
onPause
onStop
onDestory
外加一個 onRestart
就像圖示一樣,當一個activity第一次啟動時會調用的函數分別是
onCreat
onStart
onResume方法
此時activty會正常運行
。
當出現,螢幕彈出一個dialog遮住activity,但這是activity還顯示一部分時,
會調用onPause,當dialog dismiss時activity又重新回到前台會調用onResume方法。
另外一種情況,即A activtiy跳轉到另外一個B activity,第一個A activity被完全覆蓋時會調用
onPause onStop方法,當從B activity返回時,如果此時A activity未被銷毀(一般情況下不會被銷毀),
會分別調用 onRestart onStart onResume方法。然後activity進入正常運行狀態。
這大致就是面試中常回答activity生命週期調用方法。
下面再加一個onCreat(Bundle savedInstanceState)
savedInstanceState什麼時候會用到呢 ?
例如當使用者在搜尋方塊中輸入了“美女”,但這是使用者清理記憶體將這個進程幹掉了,我們希望使用者進入這個activity介面儲存著這個搜尋方塊中的內容怎麼做呢
這時候可以調用這個方法
@Override
protected void onSaveInstanceState(Bundle savedInstanceState)
{
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putString("keyText", searchEditText.getText().toString());
}
在onCreat方法中執行下列語句
if (savedInstanceState != null)
{
keyText = savedInstanceState.getString("keyText’");
searchEditText.setString(keyText);
}
即可。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
android面試總結01 activity生命週期