1. 程式人生 > >android 鎖屏重新開啟後fragment無法切換解決方案

android 鎖屏重新開啟後fragment無法切換解決方案

做的是平板程式,用的橫版,開啟後就是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"