您好,登錄后才能下訂單哦!
方法一:
screenOrientation = application.getResources().getConfiguration().orientation;
方法二:
screenOrientation = activity.getRequestedOrientation();獲取當前activity 的橫豎方向
動態設置屏幕橫豎屏:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
生命周期:
橫豎屏切換
(1)無configChanges
onCreate-->
onStart-->
onResume-->
----------切換--------
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
-----------切換--------
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
(2)修改AndroidManifest.xml,把該Activity添加 android:configChanges="orientation",執行步驟3
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
再執行步驟4,發現不會再打印相同信息,但多打印了一行onConfigChanged
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onConfigurationChanged-->
(3)改成 android:configChanges="orientation|screenSize|keyboardHidden"(sdk>13時需加上screenSize),執行步驟3,就只打印onConfigChanged
onConfigurationChanged-->
執行步驟4
onConfigurationChanged-->
onConfigurationChanged-->
總結:
1、不設置Activity的android:configChanges時,切屏會重新調用各個生命周期,切橫屏時會執行一次,切豎屏時會執行兩次
2、設置Activity的android:configChanges="orientation"時,切屏還是會重新調用各個生命周期,切橫、豎屏時只會執行一次
2、設置Activity的android:configChanges="keyboardHidden"時,切屏還是會重新調用各個生命周期,切橫、豎屏時只會執行一次
3、設置Activity的android:configChanges="orientation|screenSize|keyboardHidden"時,切屏不會重新調用各個生命周期,只會執行onConfigurationChanged方法
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。