当屏幕转动切换的时候 Android 机制是:
销毁当前屏幕的 Activity ,然后重新开启一个新的适应屏幕改变的 Activity 。
那么,我们该如何在屏幕切换的时候页面信息不被重置呢?
解决实现:
1.在 AnroidMainifest.xml 的 activity 元素中加入:
代码如下:
android:configChanges="orientation|keyboardHidden"
注意:android4.0以上需加入
android:configChanges="orientation|keyboardHidden|screenSize"
如
<activity
android:name="com.example.dcny.MainActivity"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden|screenSize"
android:launchMode="singleTask" >
</activity>
2.权限声明:
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>
3.在 Java 源代码文件中重写 Activity 中的 onConfigurationChanged 方法:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(this.getResources().getConfiguration().orientation ==Configuration.ORIENTATION_LANDSCAPE) {
// land donothing is ok
} else if(this.getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT) {
// port donothing is ok
}
}