重写只有一个参数的onSaveInstanceState方法
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
LogUtil.i("onSaveInstanceState")
}
代码如下:
class MainActivityOne : AppCompatActivity() {
companion object {
fun start(context: Context) {
val intent = Intent(context, MainActivityOne::class.java)
context.startActivity(intent)
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.layout_one)
LogUtil.i("onCreate")
}
override fun onStart() {
super.onStart()
LogUtil.i("onStart")
}
override fun onResume() {
super.onResume()
LogUtil.i("onResume")
}
override fun onPause() {
super.onPause()
LogUtil.i("onPause")
}
override fun onStop() {
super.onStop()
LogUtil.i("onStop")
}
override fun onRestart() {
super.onRestart()
LogUtil.i("onRestart")
}
override fun onDestroy() {
super.onDestroy()
LogUtil.i("onDestroy")
}
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
LogUtil.i("onNewIntent")
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
LogUtil.i("onSaveInstanceState")
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
LogUtil.i("onRestoreInstanceState")
}
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
var a = ""
when (newConfig.orientation) {
Configuration.ORIENTATION_UNDEFINED -> {
a = "ORIENTATION_UNDEFINED"
}
Configuration.ORIENTATION_LANDSCAPE -> {
a = "ORIENTATION_LANDSCAPE"
}
Configuration.ORIENTATION_PORTRAIT -> {
a = "ORIENTATION_PORTRAIT"
}
Configuration.ORIENTATION_SQUARE -> {
a = "ORIENTATION_SQUARE"
}
}
LogUtil.i("onConfigurationChanged:${a}")
}
}
1.没设置configChanges
竖屏启动:
切换横屏:
总结:
1.没设置configChanges时,横竖屏切换不会走onConfigurationChanged方法
2.生命周期
正常启动:onCreate--onStart--onResume ;
切换横屏(反复切换一样):onPause--onStop--onSaveInstanceState--onDestroy--onCreate--onStart--onRestoreInstanceState--onResume
销毁:onPause--onStop--onDestroy
2.设置configChanges
android:configChanges="keyboardHidden|screenSize|orientation"
竖屏启动:
切换横屏:
总结:
1.设置configChanges时,横竖屏切换走onConfigurationChanged方法,不会重新走生命周期