Отмена фона выполнения задачи, когда пользователь нажимает на кнопку «ОтменаJAVA

Программисты JAVA общаются здесь
Anonymous
Отмена фона выполнения задачи, когда пользователь нажимает на кнопку «Отмена

Сообщение Anonymous »

Я реализовал API /TransferFile < /code>, который загружает файл с сервера и записывает его в определенное место. Чтобы гарантировать, что передача файла работает в фоновом режиме, я использую receectorservice с однопоточным исполнителем, как это:

Код: Выделить всё

ExecutorService executorService = Executors.newSingleThreadExecutor();
Future> future = executorService.submit(() -> {
return transferFileMethod(someparameters);
});
Transperfilemethod выглядит так:
Map transferFileMethod(someparameters) {
// Downloading from server
HttpURLConnection urlConnection = (HttpURLConnection) requestUrl.openConnection();
InputStream inputStream = urlConnection.getInputStream();

// Writing to specific location
try (BufferedOutputStream fileOutputStream = new BufferedOutputStream(new FileOutputStream(filePath, true))) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer, 0, 4096)) != -1) {
fileOutputStream.write(buffer, 0, bytesRead);
}
}
}
< /code>
Проблема: < /h3>
Если пользователь отменяет вызов API во время передачи файла, фоновый процесс продолжает записывать файл. Я хочу немедленно остановить передачу файла, когда пользователь отменяет вызов API.


Подробнее здесь: https://stackoverflow.com/questions/795 ... cel-button

Вернуться в «JAVA»