測試機(華爲p7)
本文主要以avtivity1和activity2之間的跳轉來分析android
正常的打開關閉ide
I/xd----1-----: onCreate
I/xd----1-----: onStart
I/xd----1-----: onResume
I/xd----1-----: onPause
I/xd----1-----: onStop
I/xd----1-----: onDestroy函數
打開activity1測試
I/xd----1-----: onCreate
I/xd----1-----: onStart
I/xd----1-----: onResume.net
activity1--->activity2 code
I/xd----1-----: onCreate
I/xd----1-----: onPause
I/xd----2-----: onCreate
I/xd----2-----: onStart
I/xd----2-----: onResume
I/xd----1-----: onSaveInstanceState
I/xd----1-----: onStop資源
退出activity2回到activity1get
I/xd----2-----: onPause
I/xd----1-----: onRestart
I/xd----1-----: onStart
I/xd----1-----: onResume
I/xd----2-----: onStop
I/xd----2-----: onDestroyit
activity2直接按home鍵返回桌面io
I/xd----2-----: onPause
I/xd----2-----: onSaveInstanceState
I/xd----2-----: onStop
activity1直接按back鍵
I/xd----1-----: onPause
I/xd----1-----: onStop
I/xd----1-----: onDestroy
activity1直接按home鍵
I/xd----1-----: onPause
I/xd----1-----: onSaveInstanceState
I/xd----1-----: onStop
activity1自動旋轉屏幕
I/xd----1-----: onPause
I/xd----1-----: onSaveInstanceState
I/xd----1-----: onStop
I/xd----1-----: onDestroy
I/xd----1-----: onCreate
I/xd----1-----: onStart
I/xd----1-----: onRestoreInstanceState
I/xd----1-----: onResume
activity2自動旋轉屏幕
I/xd----2-----: onPause
I/xd----2-----: onSaveInstanceState
I/xd----2-----: onStop
I/xd----2-----: onDestroy
I/xd----2-----: onCreate
I/xd----2-----: onStart
I/xd----2-----: onRestoreInstanceState
I/xd----2-----: onResume
當降activity2的主題設置爲dialog
android:theme="@style/Base.Theme.AppCompat.Dialog"
activity1--->activity2
I/xd----1-----: onCreate
I/xd----1-----: onStart
I/xd----1-----: onResume
I/xd----1-----: onPause
I/xd----2-----: onCreate
I/xd----2-----: onStart
I/xd----2-----: onResume
I/xd----1-----: onSaveInstanceState
退出activity2回到activity1
I/xd----2-----: onPause
I/xd----1-----: onResume
I/xd----2-----: onStop
I/xd----2-----: onDestroy
activity2直接按home鍵返回桌面
I/xd----2-----: onPause
I/xd----2-----: onSaveInstanceState
I/xd----2-----: onStop
I/xd----2-----: onDestroy
I/xd----2-----: onCreate
I/xd----2-----: onStart
I/xd----2-----: onRestoreInstanceState
I/xd----2-----: onResume
I/xd----1-----: onStop
I/xd----1-----: onDestroy
I/xd----1-----: onCreate
I/xd----1-----: onStart
I/xd----1-----: onRestoreInstanceState
I/xd----1-----: onResume
I/xd----1-----: onPause
activyty2按home鍵
I/xd----2-----: onPause
I/xd----1-----: onSaveInstanceState
I/xd----1-----: onStop
I/xd----2-----: onSaveInstanceState
I/xd----2-----: onStop
當咱們這樣設置configChanges屬性後,若是咱們的屏幕方向改變(或者你設置的其它屬性改變)Activity
就不會從新建立了,而是回調Activity
中的onConfigurationChanged
函數了
I/xd----1-----: onCreate
I/xd----1-----: onStart
I/xd----1-----: onResume
I/xd----1-----: onConfigurationChanged
以前也看過好多關於saveInstanceState()的講解,可是關於saveInstanceState()方法必須是在activity異常關閉而且從新開啓是調用,與測試demo不附,不知是不是版本問題,請多多指教。。。
onCreate(Bundle)是初始化activity的地方. 在這兒一般能夠調用setContentView(int)設置在資源文件中定義的UI, 使用findViewById(int) 能夠得到UI中定義的窗口
onSaveInstanceState的調用是在onPause()以後執行的
即:onPause()—>onSaveInstanceState( )–>onStop( );
public void onSaveInstanceState(Bundle savedInstanceState) { savedInstanceState.putBoolean("MyBoolean", true);
savedInstanceState.putDouble("myDouble", 1.9);
savedInstanceState.putInt("MyInt", 1);
savedInstanceState.putString("MyString", "Welcome back to Android"); // etc. super.onSaveInstanceState(savedInstanceState);
}
public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState);
boolean myBoolean = savedInstanceState.getBoolean("MyBoolean");
double myDouble = savedInstanceState.getDouble("myDouble");
int myInt = savedInstanceState.getInt("MyInt");
String myString = savedInstanceState.getString("MyString");
}
小菜鳥一枚。。