測試手機:小米5
第一種情況:
普通Activity奏属,1【無其他參數 】潮峦,2【configchange="orientation"】
(1)第一次啟動時:onCreate()-->onStart()-->onResume();
(2)然后 由豎屏切位橫屏 : onPause() --> onSaveInstanceState(1) --> onStop() --> onDestory() --> onCreate() --> onStart() --> onRestoreInstanceState(1) -- > onResume();
(3) 后面每次翻轉都是上面的第二步的流程
第二種情況
普通Activity,【configchanges="orientation|screensize",這個屬性的意思是同時滿足屏幕旋轉和尺寸改變時勇婴,會調用onConfiguratonChange(),否者會重新啟動Activity】,在官方文檔中說的是耕渴, If a configuration change involves any that you do not handle, however, the activity will still be restarted andonConfigurationChanged(Configuration)
will not be called.大概意思是說齿兔,當configchanges屬性值中,不包含配置改變的某個原因添诉,還是會重新調用Activity的邏輯栏赴,就比如只寫了一個orientation時靖秩,屏幕從豎屏變?yōu)闄M屏,這是不僅方向改了盆偿,屏幕大小也改變了事扭,所以只設置了其中一個的話求橄,是沒起到實際作用的
可以通過如下方式禁用掉橫豎屏切換:
在AndroidManifest.xml中
豎屏:android:screenOrientation="portrait"
橫屏:android:screenOrientation="landscape"
java代碼中
豎屏:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATIN_PORTRAIT)
橫屏:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
徹底禁止翻轉葡公,忽略重力感應帶來的切換
android:screenOrientation="nosensor"