在做需求时,发现部分设备(联想平板),从竖屏界面A跳转到横屏界面B再返回,竖屏界面A会先跳转横屏再返回竖屏。测试发现小米的设备不会有此问题(可能是rom做了兼容),然后发现增加一下代码可以解决此问题。
在启动界面B的时候,获取一下当前的屏幕方向,通过Intent存在ActivityB里面。
然后在界面B的onDestory时,重新设置一下屏幕方向。
private int fromOrientation;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
fromOrientation = getIntent().getIntExtra("fromOrientation", ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
@Override
public void onDestroy() {
super.onDestroy();
if (fromOrientation != ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) {
setRequestedOrientation(fromOrientation);
}
}