Android中进行横竖屏切换的时候,默认情况下是会重新创建当前的Activity:
- public void onCreate() {
- if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
- Log.i("info", "landscape");
- } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
- Log.i("info", "portrait");
- }
- }
在模拟器上按Ctrl+F12会看到效果,而更多的时候我们不希望重新创建,在androidmanifest.xml中加入配置
android:configChanges="orientation|keyboardHidden|navigation当屏幕翻转时,Activity就不会重复的调用onCreate()、onPause()和onResume().而是调用onConfigurationChanged(Configuration newConfig):
- @Override
- public void onConfigurationChanged(Configuration newConfig) {
- super.onConfigurationChanged(newConfig);
- // 检测屏幕的方向:纵向或横向
- if (this.getResources().getConfiguration().orientation
- == Configuration.ORIENTATION_LANDSCAPE) {
- //当前为横屏, 在此处添加额外的处理代码
- }
- else if (this.getResources().getConfiguration().orientation
- == Configuration.ORIENTATION_PORTRAIT) {
- //当前为竖屏, 在此处添加额外的处理代码
- }
- }