Sto cercando di implementare la pausa/ripresa nel mio download manager, cerco sul web e leggo diversi articoli e cambio il mio codice in base a loro ma il curriculum sembra non funzionare correttamente, qualche idea?Implementare la pausa/riprendere nel download del file
if (!downloadPath.exists())
downloadPath.mkdirs();
if (outputFileCache.exists())
{
downloadedSize = outputFileCache.length();
connection.setAllowUserInteraction(true);
connection.setRequestProperty("Range", "bytes=" + downloadedSize + "-");
connection.setConnectTimeout(14000);
connection.connect();
input = new BufferedInputStream(connection.getInputStream());
output = new FileOutputStream(outputFileCache, true);
input.skip(downloadedSize); //Skip downloaded size
}
else
{
connection.setConnectTimeout(14000);
connection.connect();
input = new BufferedInputStream(url.openStream());
output = new FileOutputStream(outputFileCache);
}
fileLength = connection.getContentLength();
byte data[] = new byte[1024];
int count = 0;
int __progress = 0;
long total = downloadedSize;
while ((count = input.read(data)) != -1 && !this.isInterrupted())
{
total += count;
output.write(data, 0, count);
__progress = (int) (total * 100/fileLength);
}
output.flush();
output.close();
input.close();
Che cosa non funziona ?? – BrianPlummer
@BrianPlummer Quando sospendo e riprendo il download, il download inizia dall'inizio e bloccato quando arriva all'ultimo stato in cui lo metto in pausa. – NullPointer
@BrianPlummer Penso che questa riga '(int) (totale * 100/fileLength)' restituisca progressi sbagliati! – NullPointer