android 鎖屏重新開啟後fragment無法切換解決方案
阿新 • • 發佈:2019-01-29
做的是平板程式,用的橫版,開啟後就是4個fragment,後來發現鎖屏重新開啟後fragment無法切換了
後來去網上找了下用了別人的方法解決了,內容如下:
今天在寫一個應用的時候,因為需要設定成橫屏模式,所以在Manifest裡面的Activity裡面加了兩個引數設定:
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation"
這是設定螢幕方向為橫屏,以及禁止在螢幕切換的時候重啟Activity和隱藏鍵盤。
本來是用的好好的,但是無意中在鎖屏後再解鎖的時候,應用會先豎屏,然後再轉回橫屏,而且還有一些時間間隔,於是我就去調查了一番:
首先,在所有Activity的生命週期加了一句列印LOG,發現在鎖屏的時候,Activity就執行了一遍onDestroy,解鎖的時候,又重新從onCreat來開啟,於是就又執行了一遍onCreat裡面的程式碼,,,這不科學,正常情況下是不會執行這兩個的(除非系統記憶體吃緊,自動銷燬,但是這個情況排除了)。
經過反覆查詢和DEBUG之後,又和同學同事討論了半天,還去查看了鎖屏的原始碼(雖然沒看懂幾句),還是沒有結果,,,
不過,皇天不負有心人,終於在stackoverflow上找到一大神的回答了~
問題的關鍵所在,就是API13以後,需要在 android:configChanges
的引數裡面加一個screenSize!!!
也就是:
android:configChanges="screenSize|keyboardHidden|orientation"