Каков наилучший способ загрузки файлов из сети программно в Android?
В моем приложении, загружающем множество файлов из Интернета, они были около 200 МБ файлов (Zipped). Так может ли кто-нибудь сказать мне лучший способ скачать файлы. На самом деле моя озабоченность связана с выполнением кода. Пожалуйста, запишите идею или какой-нибудь код, если возможно, загрузить. Как обрабатывать ошибки и сетевые проблемы между ними.
Поблагодарив вас,
Шринивас
Ответы
Ответ 1
Вот код, который я недавно написал для этого:
try {
URL u = new URL("http://your.url/file.zip");
InputStream is = u.openStream();
DataInputStream dis = new DataInputStream(is);
byte[] buffer = new byte[1024];
int length;
FileOutputStream fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory() + "/" + "file.zip"));
while ((length = dis.read(buffer))>0) {
fos.write(buffer, 0, length);
}
} catch (MalformedURLException mue) {
Log.e("SYNC getUpdate", "malformed url error", mue);
} catch (IOException ioe) {
Log.e("SYNC getUpdate", "io error", ioe);
} catch (SecurityException se) {
Log.e("SYNC getUpdate", "security error", se);
}
Загружает файл и помещает его на вашу SD-карту.
Возможно, вы можете изменить это в соответствии с вашими потребностями.:)
Ответ 2
Я хочу отметить, что Android 2.3 (API Level 9) представляет новый системный сервис, называемый DownloadManager
. Если вы в порядке, поддерживая только 2.3, вам обязательно нужно его использовать. Если нет, вы можете:
- Проверьте, доступен ли
DownloadManager
и используйте его, если он есть. Если это не (Android < 2.3), загрузите файл самостоятельно, например, как описано в xil3.
- Не используйте
DownloadManager
вообще, если вы считаете, что это слишком много работает. Тем не менее, я твердо верю, что вы выиграете от его использования.