所以,我有一个 webview 并且想要一个接一个地加载 2 个(或任何数字> 1)页面。但是页面更改不是在前一页面加载后立即发生,而是在一定时间后发生。例如:
public void load()
{
engine.load("link1");
//need to wait some time here
engine.load("link2");
//need to wait some time here
engine.load("link3");
}
当页面完成加载时,我试图让线程休眠:
engine.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() {
@Override
public void changed(ObservableValue observableValue, Worker.State o, Worker.State o2) {
if (o2.equals(Worker.State.SUCCEEDED)) {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
但它不起作用,因为 engine.load() 不会等到页面加载(因为我们有事件监听器)。另一个缺点是 Thread.sleep() 会阻塞 GUI 和整个线程,因此我不能将它放在加载链接之间。
有什么解决办法吗?在页面加载之后和开始加载下一页之前放置延迟。
问候,
伊万