我正在使用通用池以每1秒间隔将精灵添加到AndEngine中的场景中。
当添加精灵时,当它们与某些对象碰撞时,我将对其进行回收。
我不断收到这个错误
12-27 12:45:07.890: E/AndEngine(25299): More items recycled than obtained!
12-27 12:45:07.890: E/AndEngine(25299): java.lang.Exception
12-27 12:45:07.890: E/AndEngine(25299): at org.anddev.andengine.util.Debug.e(Debug.java:117)
12-27 12:45:07.890: E/AndEngine(25299): at org.anddev.andengine.util.Debug.e(Debug.java:107)
12-27 12:45:07.890: E/AndEngine(25299): at org.anddev.andengine.util.pool.GenericPool.recyclePoolItem(GenericPool.java:127)
12-27 12:45:07.890: E/AndEngine(25299): at com.fttech.hungryhippos.Arcade_MainGame$1.onUpdate(Arcade_MainGame.java:738)
它不会导致强制关闭,但我确实担心会在以后导致问题。
是我应该担心的错误吗?
这也是我如何回收我的物品..
@Override
protected void onHandleRecycleItem(final Sprite pItem) {
pItem.setVisible(false);
pItem.setIgnoreUpdate(true);
}
最佳答案
从AndEngine论坛上的herpderp:
这就是说的意思。在GenericPool来源中有一个成员
变量,在调用getPoolItem时增加,并减少
调用recyclePoolItem时。如果它降到零以下-在其他
话来说,如果调用recyclePoolItem的次数超过了getPoolItem的调用次数
调用-然后您收到该错误消息。
没有解决此问题的简单方法。你只需要看看
您的代码,特别是在回收和获取池项的位置,
并尝试找出为什么太频繁调用recyclePoolItem的原因。
关于java - 通用池“回收的物品多于获得的物品”问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8647673/