android在activity中锁屏解锁后重走OnCreate的问题的解决办法

在项目中,遇到了需要在某个activity中根据不同的情况下设置为横屏或竖屏,而且不因重力感应改变方向。因此刚开始我没有在manifest里指定方向,而是在代码中强制设置屏幕的方向

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//当前activity强制设置为横屏

或者是

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//当前activity强制设置为竖屏

这样设置后可以根据不同的情况调整屏幕的方向,但如果进行锁屏,解锁后通过跟踪log发现activity又重走了OnCreate,当前activity的状态无法保存。正常进入当前activity时会走两次OnCreate,第二次是因为设置屏幕的方向。网上找解决办法,可以在manifest里该activity下添加

android:configChanges="orientation"

可以使activity不因为屏幕方向的改变而重走OnCreate。这样再跟踪log时,解锁后就从OnResume开始走了。


 

原文地址:https://www.cnblogs.com/romii/p/2539912.html