在很多面试题库中,都有横竖屏切换时Activity的生命周期的问题:
分析:
Activity启动,到能与用户进行交互,调用的生命周期方法为:
onCreate()创建–>onStart()可见–>onResume()获得焦点
横竖屏切换时,调用onpause()–>onStop()–>onDestroy()
框架将此Activity销毁,接着调用onCreate()–>
onStart()–>onResume(),重新创建竖屏的Activity 。
即:默认情况下,横竖屏切换,Activity会被销毁然后重新创建。
某些情况下,不希望在横竖屏切换时销毁Activity,此时,可以在AndroidManifest.xml中设置activity的configChange属性,此属性的作用是:忽略掉哪些配置信息的变化。
orientation:忽略屏幕的朝向变化
keyboardHidden:忽略软键盘隐藏导致Activity生命周期的变化(横屏时弹出软键盘会覆盖掉整个屏幕)
screenSize:忽略屏幕大小的变化(横竖屏切换)