作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个像这样的监听器添加:
lwebview.getEngine().getLoadWorker().stateProperty().addListener(new ChangeListener() {
public void changed(ObservableValue pobservable, Object poldstate, Object pnewstate) {
if (pnewstate.toString().equals("SUCCEEDED")) {
//code to be executed
}
}
});
现在我的问题是,有什么方法可以在执行后删除这个监听器吗?我对这些类型的事情还很陌生。提前感谢您的帮助!
最佳答案
您应该单独创建 ChangeListener
并保留它的引用。
ChangeListener<Worker.State> listener = new ChangeListener<Worker.State>() {
public void changed(ObservableValue<? extends Worker.State> pobservable, Worker.State poldstate, Worker.State pnewstate) {
if (pnewstate = Worker.State.SUCCEEDED) {
//code to be executed
}
}
};
lwebview.getEngine().getLoadWorker().stateProperty().addListener(listener);
当您稍后需要删除它时:
lwebview.getEngine().getLoadWorker().stateProperty().removeListener(listener);
如果您只需要监听器停留直到它“成功”,那么您可以:
lwebview.getEngine().getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() {
public void changed(ObservableValue<? extends Worker.State> pobservable, Worker.State poldstate, Worker.State pnewstate) {
if (pnewstate = Worker.State.SUCCEEDED) {
//code to be executed
lwebview.getEngine().getLoadWorker().stateProperty().removeListener(this);
}
}
});
关于java - 监听器移除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48200632/
我正在做一个项目,我的 android 在这个项目中作为一个网络服务器工作;输入带端口号的 IP 地址,打开 Web 界面,用户可以将文件上传到手机。我想在 Web 界面上显示一些图片,以便我们的界面
我是一名优秀的程序员,十分优秀!