Android(安卓)Activity 之横竖屏的生命周期
16lz
2021-01-25
1、刚进a页面(竖屏)
a-onCreat —— a-onStart —— a-onResume
2、a页面竖屏变成横屏(a-竖 b-横) a-onPause —— a-onSaveInstanceState —— a-onStop —— a-onDestory —— b-onCreat —— b-onStart —— a-onRestoreInstanceState —— b-onResume 3、a页面由横屏变为竖屏(a-横 b-竖)
a-onPause —— a-onSaveInstanceState —— a-onStop —— a-onDestory —— b-onCreat —— b-onStart —— a-onRestoreInstanceState —— b-onResume
上面是正常情况下页面横竖屏的生命周期,在切换横竖屏的时候页面会先销毁然后重新创建,但如果不想页面销毁再重建要怎样做呢,我们可以在AndroidManifest.xml中配置activity的 configChanges属性(亲测),这个时候切换横竖屏的时候就不需要先销毁再重建了
1、配置activity的configChanges属性 a: Andorid 3.2以前的SDK可以使用如下配置 android:configChanges="orientation|keyboardHidden"
b:而Adnroid 3.2以后的SDK必须添加一个screenSize属性,具体如下
android:configChanges="keyboardHidden|orientation|screenSize"
或者
android:configChanges="orientation|screenSize"
2、重写 onConfigurationChanged方法
3、由横屏切换成竖屏 日志输出
a-onCreat —— a-onStart —— a-onResume
2、a页面竖屏变成横屏(a-竖 b-横) a-onPause —— a-onSaveInstanceState —— a-onStop —— a-onDestory —— b-onCreat —— b-onStart —— a-onRestoreInstanceState —— b-onResume 3、a页面由横屏变为竖屏(a-横 b-竖)
a-onPause —— a-onSaveInstanceState —— a-onStop —— a-onDestory —— b-onCreat —— b-onStart —— a-onRestoreInstanceState —— b-onResume
上面是正常情况下页面横竖屏的生命周期,在切换横竖屏的时候页面会先销毁然后重新创建,但如果不想页面销毁再重建要怎样做呢,我们可以在AndroidManifest.xml中配置activity的 configChanges属性(亲测),这个时候切换横竖屏的时候就不需要先销毁再重建了
1、配置activity的configChanges属性 a: Andorid 3.2以前的SDK可以使用如下配置 android:configChanges="orientation|keyboardHidden"
b:而Adnroid 3.2以后的SDK必须添加一个screenSize属性,具体如下
android:configChanges="keyboardHidden|orientation|screenSize"
或者
android:configChanges="orientation|screenSize"
2、重写 onConfigurationChanged方法
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.i(TAG, "onConfigurationChanged called.");
switch (newConfig.orientation) {
case Configuration.ORIENTATION_PORTRAIT:
Log.i(TAG, "onConfigurationChanged called.ORIENTATION_PORTRAIT ");
break;
case Configuration.ORIENTATION_LANDSCAPE:
Log.i(TAG, "onConfigurationChanged called.ORIENTATION_LANDSCAPE " );
break;
}
}
3、由横屏切换成竖屏 日志输出
onConfigurationChanged called.
onConfigurationChanged called.ORIENTATION_PORTRAIT
更多相关文章
- 安全新手入坑——HTML标签
- Nginx系列教程(四)| 一文带你读懂Nginx的动静分离
- android中使用OpenGL ES
- Android紧急号码列表修改
- Android(安卓)属性动画 源码解析 深入了解其内部实现
- Android(安卓)实现页面跳转
- android 网络连接处理分析
- RecycleView 嵌套 RecycleView 导致自动滚动
- android系统属性读写操作SystemProperties