接上一篇内容,经打包测试以后,发现虽然从点击图面图标切入游戏是正常的,但是锁屏以后问题仍然存在,要疯了,这是怎么回事?那好,那我想办法不让游戏自动锁屏。这里网上也有很多方法,推荐一篇文章大家看一下:http://blog.csdn.net/andyhuabing/article/details/8988161
这个方法完全可用,这样游戏在运行时不会自动锁屏,但这没有从根本上解决我的问题,那么继续上网搜,继续找方法,现在说一下最后的解决方法:
在安卓项目找到当前项目的 java文件,在OnCreate方法中添加一行语句:getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
这句话同样是使屏幕处于常亮状态,这样就不会锁屏了。
然后打开项目配置文件,也就是AndroidManifest.xml文件,修改当前activity :android:configChanges="orientation|keyboardHidden">
好了,然后我们打包测试,会发现还是存在问题,奇怪了,这是为什么呢?不急,打断点就好了,我们把安卓这几个方法重写一下,打个断点看一下调用顺序:
@Override protected void onDestroy() { super.onDestroy(); Log.e("","start onDestroy~~~"); } /*@Override public void onPause() { super.onPause(); Log.e("","start onPause~~~"); } @Override public void onResume() { super.onResume(); Log.e("","start onResume~~~"); } @Override protected void onStart() { super.onStart(); Log.e("","start onStart~~~"); } @Override protected void onStop() { super.onStop(); Log.e("","start onStop~~~"); } @Override protected void onRestart() { super.onRestart(); Log.e("","start onRestart~~~"); }*/这个时候才发现原来在锁屏的时候会调用onDestroy,可是又继续调用了onCreate ,解锁屏幕的时候也是这样,这就很奇怪了。后来再次查找资料时,发现原来是程序在锁屏时,程序是横屏的会被竖屏,如果Activity不加android:configChanges=”orientation”就会经历一次销毁再创建的过程。
在对应的Activity加入android:configChanges=”orientation|keyboardHidden|screenSize”即可。
好了,到这里这个非常坑人的问题算是解决了,对于像我这样不熟悉安卓的朋友希望能有所帮助。