Estoy intentando descargar archivo grande de Internet (> 20 MB)Android: descarga de archivos grandes
private class DownloadTask extends AsyncTask<DatabaseInfo, Integer, String> {
private DatabaseInfo info;
protected String doInBackground(DatabaseInfo... dbInfo) {
int count;
info = dbInfo[0];
try {
URL url = new URL(dbInfo[0].dbPath);
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream("/sdcard/db.zip");
byte data[] = new byte[1024];
int total = 0;
while ((count = input.read(data)) != -1) {
//output.write(data, 0, count);
total += count;
if (total % 10240 == 0) {
publishProgress(total);
}
}
output.flush();
output.close();
input.close();
}
catch (Exception e) {
Log.e("err", e.getMessage());
}
return null;
}
protected void onProgressUpdate(Integer... total) {
int perc = (int) ((float) total[0]/(float) info.dbZipSize * 100);
mProgressDialog.setProgress(perc);
}
protected void onPostExecute(String s) {
dismissDialog(DIALOG_PROGRESS);
Log.e("err", "finish!");
}
}
Si descartar que la línea uncomment
//output.write(data, 0, count);
después de la descarga de diálogo progressbar 7-15% y Veo "terminar" en Log. ¿Por qué?
¿Lo has probado en dispositivo o emulador? si lo probaste en emulador, entonces no funciona correctamente. porque necesitas una configuración de sistema alta – Praveen
emulador. vale, lo intentaré en el dispositivo – embo
sí, en el dispositivo funciona bien! – embo