Worker完成后处理

问题描述:

在REST API上调用方法会产生一个javafx.concurrent.Worker对象。Worker完成后处理

final Worker<ObservableList<ProductBrand>> retrieve = listDataProvider.retrieve(); 

我想在Worker完成其工作后发生一些操作。我怎样才能做到这一点?

注册与Workerstate属性监听器,并处理状态转换:

retrieve.stateProperty().addListener((obs, oldState, newState) -> { 
    if (newState == Worker.State.SUCCEEDED) { 
     ObservableList<ProductBrand> result = retrieve.getValue(); 
     // etc... 
    } else if (newState == Worker.State.FAILED) { 
     Throwable exception = retrieve.getException(); 
     /// etc... 
    } 
    // handle other states (READY, SCHEDULED, RUNNING, CANCELLED) if needed 
}); 

注意这个回调将在FX应用程序线程来执行,这样你就可以安全地修改的元素的状态这里的场景图。

+0

它的工作原理。谢谢。 – 2014-10-06 16:39:43