一个困扰我很久的问题终于解决了 主要应该是安卓8.0的一个问题 解决办法就是在横屏activity_b的destroy的方法里设置一遍方向
在application中加以下代码
if (Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
this.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(@androidx.annotation.NonNull Activity activity, @Nullable Bundle savedInstanceState) {
}
@Override
public void onActivityStarted(@NonNull Activity activity) {
}
@Override
public void onActivityResumed(@NonNull Activity activity) {
}
@Override
public void onActivityPaused(@NonNull Activity activity) {
}
@Override
public void onActivityStopped(@NonNull Activity activity) {
}
@Override
public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) {
}
@Override
public void onActivityDestroyed(@NonNull Activity activity) {
//如果你的activity_a是竖屏这里就设置ActivityInfo.SCREEN_ORIENTATION_PORTRAIT,如果是横屏就设置ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
});
}
或者在activity_b的destroy方法中加入一下代码
if (Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}