Android 取消注册IUpdateHandler时出现的引擎混乱

Android 取消注册IUpdateHandler时出现的引擎混乱,android,andengine,Android,Andengine,如果这个问题有点生疏,我很抱歉。我正在使用AndEngine,我的问题是特定于该框架的。假设我创建一个IUpdateHandler,如下所示: this.registerUpdateHandler(new IUpdateHandler() { @Override public void onUpdate(float pSecondsElapsed) { doUpdate(pSecondsElapsed); }

如果这个问题有点生疏,我很抱歉。我正在使用AndEngine,我的问题是特定于该框架的。假设我创建一个IUpdateHandler,如下所示:

    this.registerUpdateHandler(new IUpdateHandler() {

        @Override
        public void onUpdate(float pSecondsElapsed) {
            doUpdate(pSecondsElapsed);
        }

        @Override
        public void reset() {
            // TODO Auto-generated method stub
        }
    });

在我的doUpdate()方法中,我在某个时刻获得了确定是时候注销IUpdateHandler所需的信息。有一个方法unRegisterUpdateHandler(),听起来非常适合这个目的,但是为了使用它,我需要传递一些对updatehandler的引用,而我没有这样的引用。我缺少什么?

您提供的代码创建了您没有引用的IUpdateHandler的匿名实例。相反,您应该首先将创建的
IUpdateHandler
存储在某个变量中,例如
IUpdateHandler myHandler=new IUpdateHandler(){…})this.registerUpdateHandler(myHandler)
注册它。有了对处理程序的引用,您可以使用您提到的方法注销它。

如果您在updatehandler中,您可以通过此方法注销它。如果您的updatehandler已注册到场景

this.registerUpdateHandler(new IUpdateHandler() {

    @Override
    public void onUpdate(float pSecondsElapsed) {
        doUpdate(pSecondsElapsed);
    }

    @Override
    public void reset() {
         if (something) Scene.this.unregisterUpdateHandler(this);
    }
});

对不起,我的大脑放屁了。这就是答案。谢谢Damian。嗨,我想知道,有没有办法知道更新处理程序是否已注册。。