Android 取消注册IUpdateHandler时出现的引擎混乱
如果这个问题有点生疏,我很抱歉。我正在使用AndEngine,我的问题是特定于该框架的。假设我创建一个IUpdateHandler,如下所示:Android 取消注册IUpdateHandler时出现的引擎混乱,android,andengine,Android,Andengine,如果这个问题有点生疏,我很抱歉。我正在使用AndEngine,我的问题是特定于该框架的。假设我创建一个IUpdateHandler,如下所示: this.registerUpdateHandler(new IUpdateHandler() { @Override public void onUpdate(float pSecondsElapsed) { doUpdate(pSecondsElapsed); }
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。嗨,我想知道,有没有办法知道更新处理程序是否已注册。。