在屏幕方向改变的时候,如果没有处理,程序会自动重启。对应一些需要保存用户数据的应用中,必须处理这种情况。
1>在AndroidManifest.xml中设置Activity的android:configChanges 属性。如:
xml代码
landscape表示横屏
<activity android:name=".AndroidLight"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这样就指定了屏幕方向改变和键盘隐藏时通知程序。
2>在程序中可以添加处理事件
Java代码
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.d(TAG," == onConfigurationChanged");
processLayout();//自定义函数处理配置改变事件
}
3>也可以在AndroidManifest.xml中设置Activity的android:screenOrientation属性。如
Xml代码
<activity android:name=".AndroidLight"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这样指定屏幕方向为竖屏。屏幕就不会自动旋转了。
landscape表示横屏
portrait表示竖屏