默认情况下,当“屏幕方向”或“键盘显示隐藏”变化时都会销毁当前Activity,创建新的Activity,如果不希望重新创建Activity实例,可以按如下配置Activity:
<activity android:name=".MainActivity" android.configChanges="keyboardHidden|orientation">
上面的android:configChanges属性指定了要捕获“屏幕方向”和“键盘显示隐藏”变化,当捕获到这些变化后调用Activity的onConfigurationChanged()方法。
默认情况下(没有配置android:configChanges属性):
竖屏切换横屏:销毁当前Activity之后,创建一个新的Activity实例。
横屏切换竖屏:销毁当前Activity之后,创建一个新的Activity实例。新的Activity实例很快就会被销毁,接着又会创建一个新的Activity实例。如果只希望创建一个实例,可以配置
android:configChanges="orientation"
<!-- 主界面 -->
<activity
android:name="com.CopybookMain"
android:label="@string/app_name"
android:screenOrientation="sensorPortrait"
android:configChanges="keyboard|keyboardHidden|screenSize"
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 练习 -->
<activity
android:name="com.WriteWord"
android:label="@string/app_name"
android:screenOrientation="sensorPortrait"
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="com.noahedu.copybook.writeword" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.MainActivity"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="sensorLandscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>