在項目中,遇到了需要在某個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開始走了。