當你的程序中某一個Activity A 在運行時中,主動或被動地運行另外一個新的Activity B 這個時候A會執行java
public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putLong("id", 1234567890); }
B 完成之後又會來找A, 這個時候就有兩種狀況,一種是A被回收,一種是沒有被回收,被回 收的A就要從新調用onCreate()方法,不一樣於直接啓動的是這回onCreate()裏是帶上參數 savedInstanceState,沒被收回的就仍是onResume就行了。 code
savedInstanceState是一個Bundle對象,你基本上能夠把他理解爲系統幫你維護的一個Map對象。在onCreate()裏你可能會用到它,若是正常啓動onCreate就不會有它,因此用的時候要判斷一下是否爲空對象
if(savedInstanceState != null){ long id = savedInstanceState.getLong("id"); }
就像官方的Notepad教程 裏的狀況,你正在編輯某一個note,忽然被中斷,那麼就把這個note的id記住,再起來的時候就能夠根據這個id去把那個note取出來,程序就完整一些。這也是看你的應用需不須要保存什麼,好比你的界面就是讀取一個列表,那就不須要特殊記住什麼,哦, 沒準你須要記住滾動條的位置...教程