如题
默认情况下,当安卓应用横竖屏之间切换时,每次切换都会触发onCreate,如果你的应用是一个hybird应用,那体验惨爆了,刚刚还在一个二级页面,横屏一下立马又回到首页,所以我们必须想办法禁止这种行为。
方法很简单,针对AndroidManifest.xml中对应Activity增加设置android:configChanges="orientation|keyboardHidden|screenSize"
:
<activity
android:name=".activity.WelcomeActivity"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden|screenSize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
有一点需要知道,Android4.0之前只需设置keyboardHidden|orientation
即可,但是4.0以后需要设置keyboardHidden|orientation|screenSize
,这一点切记,网上很多老的文章没有提到!
另外,如果你需要针对方向切换后做一些自定义处理,可以这样:
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
int currentOrientation = this.getResources().getConfiguration().orientation;
if(currentOrientation == Configuration.ORIENTATION_LANDSCAPE)
{
// 如果是横屏,做相关处理
}
else if(currentOrientation == Configuration.ORIENTATION_PORTRAIT)
{
// 如果是竖屏,做相关处理
}
}
参考
http://www.cnblogs.com/savagemorgan/archive/2013/01/24/2875586.html