我正在制作音乐应用程序,它的底部包含一个滑块。为了解决由于某种原因监听器不活动而导致的另一个问题,我必须这样做,以便在发生事件时添加监听器,因为没有其他地方可以添加它。如何从一个对象中删除一个无效侦听器,然后添加另一个对象,这样我就没有大量的无效侦听器?
听众看起来像这样:
someMediaPlayer.currentTimeProperty().addListener(new InvalidationListener()
{
public void invalidated(Observable ov) {
someMethod();
}
});
使用您发布的代码,您将永远无法删除它,因为您不存储参考。每次调用new InvalidationListener()
都会获得新的参考。而是存储该InvalidationListener对象,然后可以将其删除。
InvalidationListener listener = new InvalidationListener()
{
public void invalidated(Observable ov) {
someMethod();
}
};
someMediaPlayer.currentTimeProperty().addListener(listener);
....
someMediaPlayer.currentTimeProperty().removeListener(listener);