众所周知,在Activity中加入android:screenOrientation="portrait"属性可以使Activity保持竖屏的状态,但是最近发现貌似在调用一些横屏Activity返回时偶尔会有横屏事件产生(比如在上一个Acitivty finish()前弹Toast,出现瞬间横屏的概率很高,原因还没找到.....),导致Acitvity被Destroy掉,然后重新onCreate()一次,之前的很多数据会被重新初始化。
上网搜了一下,发现只要在Activity属性中再加上android:configChanges="orientation"属性就可以由Acitivity自己来处理方向变化的事件,而不是由framework来处理。
如果需要处理,需要在Activity中重写一下onConfigurationChanged()方法。当然,如果不需要自己处理,则不需重写方法,这样可以避免Activity在由另外的横屏Activity切回时被Destroy掉。
以下附另外一篇网文,自己稍有删节。 原文地址: