程序设置横屏后,锁屏时会被销毁一遍,解锁时又重新加载onCreat的问题解决
今天在寫一個應用的時候,因為需要設置成橫屏模式,所以在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"?
經過我親手真機測試,問題很干凈地被解決了,媽媽再也不用擔心它重復onCreat了! ?T w T
原文鏈接
?
轉載于:https://www.cnblogs.com/dyllove98/p/3249394.html
總結
以上是生活随笔為你收集整理的程序设置横屏后,锁屏时会被销毁一遍,解锁时又重新加载onCreat的问题解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS控制HTML元素的显示和隐藏
- 下一篇: HDU 3555 Bomb (数位DP-