程序设置横屏后,锁屏时会被销毁一遍,解锁时又从新加载onCreate的问题解决

今天在写一个应用的时候,由于须要设置成横屏模式,因此在Manifest里面的Activity里面加了两个参数设置:

android:screenOrientation="landscape" android


        android:configChanges="keyboardHidden|orientation" 测试


这是设置屏幕方向为横屏,以及禁止在屏幕切换的时候重启Activity和隐藏键盘。横竖屏切换的知识能够看我另外一篇文章。 spa


原本是用的好好的,可是无心中在锁屏后再解锁的时候,应用会先竖屏,而后再转回横屏,并且还有一些时间间隔,因而我就去调查了一番: orm


首先,在全部Activity的生命周期加了一句打印LOG,发如今锁屏的时候,Activity就执行了一遍onDestroy,解锁的时候,又从新从onCreat来打开,因而就又执行了一遍onCreat里面的代码,,,这不科学,正常状况下是不会执行这两个的(除非系统内存吃紧,自动销毁,可是这个状况排除了)。 blog


通过反复查找和DEBUG以后,又和同窗同事讨论了半天,还去查看了锁屏的源代码(虽然没看懂几句),仍是没有结果,,, 生命周期


不过,皇天不负有心人,终于在stackoverflow上找到一大神的回答了~ 内存


问题的关键所在,就是API13之后,须要在 android:configChanges
的参数里面加一个screenSize!!! get


也就是: android:configChanges="screenSize|keyboardHidden|orientation"  it




通过我亲手真机测试,问题很干净地被解决了,妈妈不再用担忧它重复onCreate了! io

相关文章
相关标签/搜索