最近测试发现在android8.1下,A页面(竖屏)跳转到B页面(横屏),然后返回,会导致A页面回来时是竖屏,然后切为横屏,然后再回到竖屏,在屏幕切换过程中,会导致数据丢失问题,数据丢失虽然可以按照页面回收来处理,但是这里B页面如果作为返回参数的页面,那么A页面再收到onActivityResult后,页面再横竖屏,将会导致页面逻辑混乱,如果手机内存较小,还容易出现页面回收等情况,难以处理,经过查询网上各类解决方案,最终测试有效的方案如下(参考https://blog.csdn.net/weixin_43838701/article/details/90482749):

1、在B页面参数添加 

android:exported="true"

2、在B页面finish方法调用之后调用

if (android.os.Build.VERSION.SDK_INT >= 27) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
}

经过测试  方法可用

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。