android面試總結01 activity生命週期

來源:互聯網
上載者:User

標籤: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生命週期

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.