按理说这个问题我应该早就记录下来,但是一直没有时间,最近比较空闲,记录一下,以备以后查阅。
android的应用在第一次安装成功后,然后直接启动,此时进入到应用的界面,程序再退到后台,然后再进入到应用中,很奇怪的发现,测试系统走的不是onResume()方法,而是执行的是onCreate()方法,理论上来说,此时应该进入onResume方法,并且这种情况在以后(只要不是第一次安装成功后打开)都不会出现,都走的是onResume()方法。这个应该是android系统的一个bug,不知道现在有么有修复。 好了,接着说我们的游戏碰到这中bug会怎么样,别的应用我不知道,反正cocos2dx的项目,会导致字符变花,变成白色的方块。所以怎么解决呢,就是在onCreate()方法下加一条语句,用来判断,如果是新的创建的activity就把这个杀掉。如下:
if( (getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0 ){
//Log.i(TAG, "new bad activity should delete ");
finish();
return;
}
就能解决这个问题。
参考官方:https://code.google.com/p/android/issues/detail?id=14262。