Я пытаюсь загрузить большой файл из Интернета (> 20Mb)Android: скачать большой файл
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!");
}
}
Если я раскомментировать линии
//output.write(data, 0, count);
после 7-15% диалога загрузки прогрессбара сбрасывать со счетами и Я вижу «закончить!» в журнале. Зачем?
Вы пробовали его в устройстве или эмуляторе ?? если вы попробовали его в эмуляторе, тогда он не работает должным образом. потому что вам нужна высокая конфигурация системы. – Praveen
эмулятор. хорошо, я попробую на устройстве – embo
да, на устройстве хорошо работать! – embo