首先出现这个问题在android上非常普遍,基本都是因为游戏切换到主界面再切回来造成的,出现在cocos2d-x 2.1.3-2.1.5这些版本最多。
出现这个问题的原因有以下几点:
1、长时间锁屏切回
2、home切出切回
3、使用notification切回
这里1、2可能跟内存有关,建议在onpause的时候清除缓存,注意不要在主线程意外的地方让游戏切回。
3这个问题是因为今天我刚好遇到比较深刻,其实就是在notification切回的时候没有回到游戏的activity造成的,出错的代码如下:
Notification notification = new
Notification(R.drawable.icon, getText(R.string.app_name), System.currentTimeMillis());
Intent notificationIntent =
new Intent(this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(this, getText(R.string.app_name), getText(R.string.heart_push),
contentIntent);
notice.notify(NOTICE_TAG, notification);
而正确的方式应该是这样
Notification notification = new
Notification(R.drawable.icon, getText(R.string.app_name), System.currentTimeMillis());
Intent notificationIntent =
new Intent(this, MainActivity.class);
notificationIntent.setAction(Intent.ACTION_MAIN);
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(this, getText(R.string.app_name), getText(R.string.heart_push),
contentIntent);
notice.notify(NOTICE_TAG, notification);
关键在于两行红色的代码,就解决了这个问题。