解决cocos2d-x 安卓锁屏再解锁,OPenGL报错;后台转前台异常问题解决办法 (续)

接上一篇内容,经打包测试以后,发现虽然从点击图面图标切入游戏是正常的,但是锁屏以后问题仍然存在,要疯了,这是怎么回事?那好,那我想办法不让游戏自动锁屏。这里网上也有很多方法,推荐一篇文章大家看一下: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”即可。

好了,到这里这个非常坑人的问题算是解决了,对于像我这样不熟悉安卓的朋友希望能有所帮助。

注:本文章全是个人总结,有的借鉴他人文章的有说明,如果哪里注释不全想参考原文献的可以联系我,我会尽我所能帮助大家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值