通用池“更多项目已回收而非获得”问题

时间:2011-12-27 17:52:12

标签: java android andengine

我正在使用通用池将精灵添加到AndEngine中的场景,间隔为每1秒。

随着精灵的添加,我会在它们碰撞某些物体时回收它们。

我一直收到此错误

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);

}

1 个答案:

答案 0 :(得分:3)

来自Herpderp的AndEngine论坛:

  

这意味着它所说的。在GenericPool源代码中有一个成员   调用obtainPoolItem时递增的变量,并递减   何时调用recyclePoolItem。如果它低于零 - 在另一个   单词,如果调用recyclePoolItem的次数比obtainPoolItem多   叫 - 然后你得到那个错误信息。

     

这个问题没有简单的解决办法。你只需要看一下   您的代码,特别是您回收和获取池项目的位置,   并试图弄清楚为什么会经常调用recyclePoolItem。