搞android的对AndroidManifest.xml这个文件都比较熟悉,今天给大家介绍一下activity的几个属性
先贴一个实例xml
<activity
android:name="com.xuexi.mystateactivity.MainActivity"
android:configChanges="orientation|screenSize|keyboard|keyboardHidden"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
今天我们只介绍
android:configChanges
android:screenOrientation
android:launchMode
三个比较重要的属性:
android:configChanges="orientation|screenSize|keyboard|keyboardHidden"
如果不指定那么在程序运行过程中设备转动就会重新加载activity,否则是调用onConfigurationChanged这个函数而不会重新加载activity.
Android 4.0的验证是加上keyboard|keyboardHidden跟不加这两个没什么影响
android:screenOrientation="portrait"
锁定屏幕方向为竖屏幕,设置这个属性以后,屏幕不会受到设备转动影响,始终保持一个方向,这个选项加上以后,android:configChanges属性将变得无效
android:launchMode="singleTask"
Activity一共有以下四种launchMode
standard:每次跳转系统都会在task中生成一个新的Activity实例
singleTop:每次跳转系统都会在task栈顶查找,如果发现有对应的Activity实例正位于栈顶,则重复利用,不再生成新的实例
singleTask:如果发现有对应的Activity实例,则使此Activity实例之上的其他Activity实例统统出栈,使此Activity实例成为栈顶对象,显示到幕前
singleInstance:会启用一个新的栈结构,将Acitvity放置于这个新的栈结构中,并保证不再有其他Activity实例进入,保证一个Activity只有一个单例,其他应用调用都在一个上操作