Возможно, кто-то будет знать, как решить эту проблему, потому что я не знаю. Я пытаюсь запустить мой класс, что расширяет задачу, в первый раз, когда я пытаюсь запустить это, он работает правильно (я использую это для progressBar). Когда первая операция выполняется по моей задаче, я пытаюсь выполнить следующий вызов, и она не работает, только индикатор выполнения показывает сообщение santitalization msg. Спасибо в любом случае/bw.JavaFX - Не удается запустить задачу снова
Вот код:
Декларация:
public class QueryCreator extends Service<Void>{
...
//constructor
....
@Override
protected Task<Void> createTask() {
return new Task<Void>(){
@Override
protected Void call() throws Exception {
updateMessage("Init");
// count is ;d count of queries
for(int i = 0 ; i < count ; i++){
String queryString = "";
....
// creating string for query
....
FileSaver.getInstance().writeLine(queryString); // instance of file where i put created queries
updateProgress(i+1,count);
int procent = ((i+1)*100)/count;
updateMessage("Done: " + procent + "" + "/100");
}
FileSaver.getInstance().closeFile();
updateMessage("File created");
return null
}
};
}
}
Использование:
....
Service<Void> QueryWorker = new QueryFileCreator(....);
progressBar.progressProperty().unbind();
progressBar.progressProperty().bind(QueryWorker.progressProperty());
QueryWorker.messageProperty().addListener((obs, oldVal , newVal)- {
procentLabel.setText(newVal);
});
FileSaver.getInstance().createFilePath(.....// filechooser //) ; // creating file path via filechooser
QueryWorker.start();
....
@jewelsea, который не является ответом –
Можете ли вы проверить, есть ли исключение, и показать трассировку стека, если она есть? Насколько я могу судить по вашему коду, вы просто отказываетесь от каких-либо исключений. –
О, я вижу, Каппер, вы редактировали код в вопросе от задачи к службе. Я удалил дубликат, так как теперь он совершенно другой. – jewelsea