Отмена фона выполнения задачи, когда пользователь нажимает на кнопку «Отмена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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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