Code: Select all
ExecutorService executorService = Executors.newSingleThreadExecutor();
Future> future = executorService.submit(() -> {
return transferFileMethod(someparameters);
});
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>
Problem: < /h3>
Wenn der Benutzer den API -Anruf abbricht, während die Datei übertragen wird, schreibt der Hintergrundprozess weiterhin die Datei. Ich möchte die Dateiübertragung sofort stoppen, wenn der Benutzer den API -Anruf abbricht.