我们都知道 , 默认的activity是在屏幕旋转后会重新创建activity的 , 那么有没有办法可以不重新创建呢? 有!!!
在manifest文件的activity里面指定属性
android:configChanges="orientation|screenSize" 就OK了 (其中screenSize选项参数看下面介绍 , API13之后都要加这个参数)
当然 , 这个属性值还可以是很多的 , 一般用 '|' 连接
比如 :
mcc ---sim卡的mcc代码发生了变化
mnc ---sim卡的mnc发生了变化
locale ---设备的本地位置发生了改变 , 一般指切换了系统语言
touchscreen ---触摸屏发生了变化 , 这个很费解 , 正常情况下无法发生 , 可以忽略它
keyboard ---键盘类型发生了变化 , 比如使用了外接键盘
keyboardHidden ---键盘的可访问性发生了变化 , 比如用户调出了键盘
navigation ---系统导航方式发生了变化
screenLayout ---屏幕布局发生了变化 , 很可能是用户激活了另外一个显示设备
fontScale ---系统字体缩放比例发生了变化 , 比如选择了一个新字号
uiMode ---用户界面模式发生了改变 , 比如说开启了夜间模式 (API8新添加)
orientation ---屏幕方向发生了改变 , 这个是最常用的 , 比如旋转手机屏幕
screenSize ---当屏幕的尺寸信息发生了改变 , 当旋转设备屏幕时 , 屏幕尺寸发生了变化 , 这个选项比较特殊 , 它和编译选项有关 , 当编译选项中的minSdkVersion和targetSdkVersion均低与13的时候 , 此选项不会导致activity重启 , 否则会导致activity重启(API 13新添加)
smallestScreenSize ---设备的物理屏幕尺寸发生了改变 , 这个和屏幕方向没关系 , 仅仅表示在实际的物理屏幕的尺寸发生变化时 , 比如切换到外部的显示设备(外接显示器之类的) , 其他参数和上面的screenSize一样
layoutDirection ---当布局方向变化时 , 这个属性用的很少 , 因为正常情况下无需修改布局的方向(API 17新添加)
如果觉得《Android禁止屏幕旋转后创建Activity实例》对你有帮助,请点赞、收藏,并留下你的观点哦!