最近的在做的一个项目,突然找出了这样的BUG:
手机上运行该程序,长时间未使用,手机自动息屏了,再次点亮解锁,发现程序重新启动了,之后进行多次息屏解锁测试,还都有这种情况。。。
之后经过排除法确定,出现BUG的原因在于我添加的那部分与Android交互的那部分代码。
在我的这个项目中,与Android的交互是在第一个场景中,点击某个Button跳转到Android界面,点击返回跳转回来。而且,全部的场景界面都是横屏的,不允许竖屏,但是,但是,但是,Android手机锁屏解锁那个状态是竖屏的,那么,有可能就是这个过程中出现了问题。而这可能涉及到的问题就是Android中的横竖屏切换导致Acitivity的OnDestroy与OnCreate
所以首要考虑的是Android 的 AndroidManifest.xml横竖屏配置出现了问题,最后得出的解决方法是这样的
在需要的Activity这样配置:
<activity android:name=":YourActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:screenOrientation="landscape"> </activity>
必须这三个 "orientation|keyboardHidden|screenSize"都有才行,只有前两个的没用。相关的说法是
4.0版本后需要这样设置横竖平切换才不会重新执行OnCreate,而是会调用onConfigurationChanged()。
然后,在对应的Activity中重写这个方法
@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged( newConfig); if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { //横屏相关操作 return; } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { //竖屏相关操作 return; } }
在网上还看到了类似我遇到的这个问题,但是解决的方法很不一样,这个记录一下他的链接:
http://www.cnblogs.com/newcaoguo/p/5947434.html