cocos2d 3.11.1 关于Android包第一次打开按Home键挂起再进入的问题 too much recursion

来源:互联网 发布:java自动装箱和拆箱 编辑:程序博客网 时间:2024/06/06 17:41

问题描述,打好安卓包点开包,用手机系统自带程序安装器安装后,会有一个“完成”和“打开”按钮,点击打开程序后,再按Home键退出程序,回到手机桌面再点击应用图标进入,程序直接卡死,点游戏界面上的任何按钮都无反应!!!eclipse上报出一连串“too much recursion”,此时的我一脸懵逼。
经过反复测试,只有第一次这样做会出问题,且如果不点击那个“打开”按钮,而是安装完程序后,回主界面使用点击应用图标的方法去打开就不会出问题!!!

推测这一定涉及到了Android的问题,就去论坛上看了一下,找到了关于Android程序启动的类似问题。
解决方案和问题的原因如下:
在cocos2dxActivity.java的onCreate方法中添加代码

注意添加到super.onCreate(savedInstanceState);的后面

if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0){    finish();    return;}

造成问题的原因:很简单,利用程序安装器打开程序,启动的Intent是没有带Category,而我们自己打开程序是带了Category,所以只需要在配置Intent.ACTION_MAIN的Activity判断下有无Category。然后放到通知栏的时候要更具有无Category 来生成启动的Intent。

然而,我照此方法改了,并没有什么luan用!!! 只是不像之前那样卡死了,是直接闪退!!!闪退!!!

好了,平复一下激动的情绪,仔细分析。第一次启动后,我们是按了Home键再进入,然而上述的解决方法大概意思就是,防止重复创建Activity,除此之外好像没有做关于cocos2d的什么事,但是我们的程序是按Home键挂起的,也就是此Activity到了后台,虽然不需重新创建,但是再进入应该要做resume的事情吧,关于cocos2dxActivity的事。
以上只是我的推测,于是我大胆的做了下尝试:
这里写图片描述
在return之前添加了onResume方法。

然后重新打包,问题居然就这么解决了!!!
亲测数十遍,也没有出现其他的什么问题。
虽然解决了,但也不能证明我的想法是完全正确的,如果有大神看到本文有什么不对的地方可以指出,我也可以学习一下。

阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 轮胎螺丝滑丝了怎么办 固定孔螺丝滑丝怎么办 小螺丝拧不出来怎么办 小螺丝拧不下来怎么办 螺丝拧的太紧怎么办 大螺母拧不下来怎么办 大螺帽拧不出来怎么办 十字螺丝滑丝了怎么办 六角螺母拧圆了怎么办 饺子冻在盘子上怎么办 煮熟的饺子坨了怎么办 六角螺丝拧圆了怎么办 长杆螺丝滑丝了怎么办 起泡器不起泡了怎么办 不喂母乳涨奶怎么办 螺丝和螺母跟转怎么办 六棱螺丝滑丝了怎么办 苹果6螺丝滑牙了怎么办 外六角螺丝圆了怎么办 小螺丝拧花了怎么办 老人退伍证丢了怎么办 狗狗又拉又吐怎么办 孕妇吃了马兰头怎么办 怀孕吃了马兰头怎么办 吃了茭白和豆腐怎么办 电气焊加工怎么办环评 手上皮肤干燥起皮怎么办 脸上起皮怎么办还痒痒 店铺4周被释放了怎么办 炫舞账号忘了怎么办 椎基底供血不足怎么办? 脑动脉供血不足怎么办 颈椎引起的脑供血不足怎么办 军人保障卡怎么办假的 正常形态精子率低怎么办 前向运动精子21怎么办 前向运动精子22%怎么办 前向运动精子19%怎么办 前向运动精子为0怎么办 被蝎子草扎了怎么办 二年级孩子成绩差怎么办