欢迎光临Software MyZone,有问题可留言或到站点论坛发帖,争取第一时间帮忙解决 || 站点论坛:火龙论坛 || 淘宝小店:应小心的易淘屋 【欢迎大家提建设性意见】

安装游戏后点击完成和打开的区别【牵扯到activity的加载模式】

本文为firedragonpzy原创,转载务必在明显处注明:
转载自【Softeware MyZone】原文链接:
http://www.firedragonpzy.com.cn/index.php/archives/3964

欢迎热爱编程的朋友们参与到cocos2d-x编程中,为了给大家提供良好的交流环境,网站以开启QQ群
Software MyZone:66202765(群号,欢迎加入,若满,请加1群)
Software MyZone 1群(2dx):286504621
【加群请写:Software MyZone或者是firedragonpzy】
淘宝店:【应小心的易淘屋】初次开店,大家多多支持……
群论坛:火龙论坛正试运营阶段,欢迎大家多提些建设性意见……

哎,好久不和大家分享点有意思的东西了,感觉手都痒痒了。今天和大家分享个有意思的……

直入正题,废话我就不多说了。对了,先交代下用的引擎:cocos2d-x-2.1.3。

问题描述:

点击完成:我安装完游戏后,点击完成,然后找到游戏图标,点击开始游戏,这时候home出来,再找到游戏图标,点击继续游戏,这时候游戏是正常的。

点击打开:我安装完游戏后,点击打开开始游戏,这时候home出来,再找到游戏图标,点击继续游戏,这时候黑屏了。

为了排查错误,我从onCreate输出了一下,点击完成后再进入游戏的时候,onCreate是没有输出的。点击打开再进入游戏的时候黑屏,onCreate有输出。

问题解释及解决

这问题在内存大的手机上点击完成和打开是都可以运行的,内存小点的就出现了上述问题。看到这里,你纠结吗?点击打开和完成还不一样?按说home出来再次进入游戏的时候应该是接着以前的实例走啊!怎么点击完成的时候没有onCreate方法而点击打开的时候走了onCreate呢?纠结……

好,到这里大家先来看一下这篇文章:《Activity的四种加载模式 转》……

看完了想必你明白了吧,我们引擎打包android工程的时候,没有设置lauchMode,默认是标准的,你点击打开home后再点击图标继续的时候新创建了Activity,新的实例,这时候找不到资源了,导致了黑屏。当我把lauchMode调为单例模式的时候就ok了,其实使用单例模式就可以,我们的游戏就一个activity,没必要每次都创建新的activity实例,那样还耗内存。建议以后大家直接在配置文件中配置单例就好了,在主Activity中添加如下配置:


android:launchMode="singleInstance"

关于点击完成和打开这个实例怎么建立的,点击打开完后点击进入游戏,创建了两个不同的实例,后续再说,大神们也多多指教……

发表评论