Я использую библиотеку okhttp для загрузки файлов в Android. Я успешно скачиваю. Но что-то не так, когда я приостанавливаю и возобновляю загрузку.
Response request = new Request.Builder().url(url).build();
ResponseBody responseBody = response.body();
File file = new File(filePath);
BufferedInputStream input = new BufferedInputStream(responseBody.byteStream());
OutputStream output;
if (isResume) {
output = new FileOutputStream(file, true);
input.skip(downloadedSize);
} else {
output = new FileOutputStream(file, false);
}
long totalByteSize = responseBody.contentLength();
byte[] data = new byte[1024];
int count = 0;
while ((count = input.read(data)) != -1) {
downloadedSize += count;
output.write(data, 0, count);
}
Проблема в том, что, например, размер файла составляет 10 МБ. Я делаю паузу, когда он загружает 3 МБ, а затем возобновляю загрузку, а когда загрузка заканчивается, размер файла становится 13 МБ. Он не начинается с загруженного размера при возобновлении, он начинает загрузку с начала потока байтов. поэтому файл становится 13 МБ. Что не так с кодом?