Task
реализует интерфейс Worker
, который имеет свойство state
. Вы можете прослушать это свойство и реагировать, когда Worker.State
изменяется на SUCCEEDED
, CANCELLED
или FAILED
.
Task<Boolean> task = ...;
task.stateProperty().addListener((obs, oldVal, newVal) -> {
// Test newVal and do something as needed...
});
Или вы можете прослушать свойство running
.
task.runningProperty().addListener((obs, oldVal, newVal) -> {
if (!newVal) {
// Do something...
}
});
Вы также можете прослушивать WorkerStateEvent
с на Task
.
task.setOnSucceeded(event -> {});
task.setOnCancelled(event -> {});
task.setOnFailed(event -> {});
// or even something like
task.addEventHandler(WorkerStateEvent.ANY, event -> {
// Test event type and do something as needed...
});
Также есть защищенные "методы состояния".
Task<Boolean> task = new Task<>() {
@Override
protected Boolean call() throws Exception {
return false;
}
@Override protected void succeeded() {}
@Override protected void cancelled() {}
@Override protected void failed() {}
});
Все эти опции будут уведомлять вас в ветке приложения JavaFX .