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