Android Activity的configChanges属性

原文:https://blog.csdn.net/m0_37814654/article/details/77162366

 这篇文章主要是浅析一下activity的configChanges这个属性的,这个属性可能对于一些刚入门的Android开发者来说不是很常见,但是对于做过手机播放界面的同志们这个属性恐怕没人不知道。大家都知道,当手机横竖屏切换时,在不经过设置时activity会被重新启动,而且还不止一次,而要防止这个现象的发生,就需要调用configChanges这个属性了。

在清单文件下每个activity注册时写上

android:configChanges="orientation"


那么横竖屏切换时就不会重新创建activity,那么这个属性到底是什么意思呢?
  首先,要了解Android默认在情况下,在系统的配置改变的情况下会重新创建activity,这个很好理解,因为系统环境变了,当然要重新创建activity来适应这个改变喽。但是在很多时候我们不想在系统配置改变时重新加载activity,那么就需要

android:configChanges=“xxx|xxx”这个样子来搞定了。这里的xxx表这不同的系统配置的改变。


这里的xxx包含了很多种,就像我上边写的,可以用|来连接多个值。下面简单介绍下各个值的不同含义:
mmc:这里的意思是SIM卡的标识IMSI中的mmc发生了改变,这个mmc的用途是区分不同的国家的3位数号码,比如中国的是460,玩过水货的估计有了解这个东西的。


mnc:IMSI中的运营商代码改变,就是用来区分当前SIM卡的网络运营商的,中国移动是00,联通是01,电信是03。
locale:本地位置改变触犯,恩,这个貌似跟语言切换有关,没用过,不是跟了解。
keyboard、keyboardHidden:这两个一起说一下,就是跟键盘有关的操作,前一个是键盘类型变化,如插了个键盘在设备上,后一个指的是键盘的可访问性发生变化。
teachScreen:触摸屏变化。
navigation:系统导航方式变化。
screenLayout:屏幕布局发生了改变。
layloutDirection:布局的方向发生变化,注意,是布局的方向,不是屏幕的,比较难理解的一个概念,是API17之后出现的
orientation:屏幕方向改变,具体就是屏幕的横竖屏切换。
uiMode:用户界面改变,这个是api18后出现的,比如切换夜间模式等场景会出现这个。
fontScale:系统字体大小改变。
screenSize:设备的屏幕的尺寸信息发生了改变,旋转屏幕时也会触发这个,但是这个值是API13之后才有的,因此13之前的设备没有这个。
smallestScreenSize:设备的物理屏幕发生改变,同样是API13之后的东西,指的是设备的物理屏幕发生变化,比如外接显示器之类的。。。大体上是这个意思。
其实讲道理在平时的开发中能用到的也就是android:configChanges="orientation"罢了,其他的很少会用到。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值