AndroidManifest.xml设置activity标签中的android:configChanges
属性
横屏禁止Activity重新创建
android:configChanges
="orientation
"
Android Studio官方说明:
android:configChanges
列出 Activity 将自行处理的配置更改。在运行时发生配置更改时,默认情况下会关闭 Activity 然后将其重新启动,但使用该属性声明配置将阻止 Activity 重新启动。 Activity 反而会保持运行状态,并且系统会调用其
方法。onConfigurationChanged()
注:应避免使用该属性,并且只应在万不得已的情况下使用。 如需了解有关如何正确处理配置更改所致重新启动的详细信息,请阅读处理运行时变更。
任何或所有下列字符串均是该属性的有效值。多个值使用“|
”分隔 — 例如,“locale|navigation|orientation
”。
值 | 说明 |
---|---|
“mcc ” |
IMSI 移动国家/地区代码 (MCC) 发生了变化 - 检测到了 SIM 并更新了 MCC。 |
“mnc ” |
IMSI 移动网络代码 (MNC) 发生了变化 - 检测到了 SIM 并更新了 MNC。 |
“locale ” |
语言区域发生了变化 — 用户为文本选择了新的显示语言。 |
“touchscreen ” |
触摸屏发生了变化。(这种情况通常永远不会发生。) |
“keyboard ” |
键盘类型发生了变化 — 例如,用户插入了一个外置键盘。 |
“keyboardHidden ” |
键盘无障碍功能发生了变化 — 例如,用户显示了硬件键盘。 |
“navigation ” |
导航类型(轨迹球/方向键)发生了变化。(这种情况通常永远不会发生。) |
“screenLayout ” |
屏幕布局发生了变化 — 这可能是由激活了其他显示方式所致。 |
“fontScale ” |
字体缩放系数发生了变化 — 用户选择了新的全局字号。 |
“uiMode ” |
用户界面模式发生了变化 — 这可能是因用户将设备放入桌面/车载基座或夜间模式发生变化所致。 请参阅 UiModeManager 。 此项为 API 级别 8 中新增配置。 |
“orientation ” |
屏幕方向发生了变化 — 用户旋转了设备。 注:如果您的应用面向 API 级别 13 或更高级别(按照 |
“screenSize ” |
当前可用屏幕尺寸发生了变化。它表示当前可用尺寸相对于当前纵横比的变化,因此会在用户在横向与纵向之间切换时发生变化。 不过,如果您的应用面向 API 级别 12 或更低级别,则 Activity 始终会自行处理此配置变更(即便是在 Android 3.2 或更高版本的设备上运行,此配置变更也不会重新启动 Activity)。 此项为 API 级别 13 中新增配置。 |
“smallestScreenSize ” |
物理屏幕尺寸发生了变化。它表示与方向无关的尺寸变化,因此只有在实际物理屏幕尺寸发生变化(如切换到外部显示器)时才会变化。 对此配置的变更对应于smallestWidth 配置的变化。 不过,如果您的应用面向 API 级别 12 或更低级别,则 Activity 始终会自行处理此配置变更(即便是在 Android 3.2 或更高版本的设备上运行,此配置变更也不会重新启动 Activity)。 此项为 API 级别 13 中新增配置。 |
“layoutDirection ” |
布局方向发生了变化。例如,从从左至右 (LTR) 更改为从右至左 (RTL)。 此项为 API 级别 17 中新增配置。 |
所有这些配置变更都可能影响应用看到的资源值。 因此,调用
时,通常有必要再次获取所有资源(包括视图布局、可绘制对象等),以正确处理变化。onConfigurationChanged()
_______________________________________分割线__________________________________________
Android设置强制横屏或竖屏的方法(禁止自动旋转)看我的另一篇博客
https://blog.csdn.net/yh18668197127/article/details/85119856
参考
Android Studio官方<activity>标签说明
https://developer.android.com/guide/topics/manifest/activity-element?hl=zh-cn#config