如果这个问题有点生疏,我很抱歉。我正在使用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)注册它。有了对处理程序的引用,您可以使用前面提到的方法注销它。

10-08 18:02