android 4.0以上横竖屏切换不销毁activity,只调用onConfigurationChanged

网上很多文章都是说

在 AndroidManifest.xml 文件中的设置 Activity 元素的
android:configChanges="orientation|keyboardHidden"时,
切屏不会重新调用各个生命周期,只会执行 onConfigurationChanged 方法

本人用的是4.4的版本,发现设置了之后没有用,切换横竖屏照样会调用onCreate方法

然后上官网看了下api,发现当你的版本高于13的时候,设置orientation的同时要设置screenSize

http://developer.android.com/guide/topics/manifest/activity-element.html

"orientation" The screen orientation has changed — the user has rotated the device.

Note: If your application targets API level 13 or higher (as declared by the minSdkVersion and targetSdkVersion attributes), then you should also declare the "screenSize" configuration, because it also changes when a device switches between portrait and landscape orientations.

"screenSize" The current available screen size has changed. This represents a change in the currently available size, relative to the current aspect ratio, so will change when the user switches between landscape and portrait. However, if your application targets API level 12 or lower, then your activity always handles this configuration change itself (this configuration change does not restart your activity, even when running on an Android 3.2 or higher device).

Added in API level 13.

所以,我们在配置里加上这个android:configChanges="orientation|screenSize" 这样,切换横竖屏的时候就只会调用onConfigurationChanged方法了

猜你喜欢

转载自dzc.iteye.com/blog/2090512