В моем приложении есть много дополнительных данных, которые можно загрузить, поэтому я решил использовать Сервис для обработки всех загрузок в фоновом режиме, поэтому я начал изучать его и вот где я получил:
public class DownloadService extends IntentService{
public DownloadService() {
super("DownloadService");
}
@Override
protected void onHandleIntent(Intent intent) {
String URL=intent.getStringExtra("DownloadService_URL");
String FileName=intent.getStringExtra("DownloadService_FILENAME");
String Path=intent.getStringExtra("DownloadService_PATH");
try{
URL url = new URL(URL);
URLConnection conexion = url.openConnection();
conexion.connect();
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(Path+FileName);
byte data[] = new byte[1024];
int count = 0;
while ((count = input.read(data)) != -1) {
output.write(data);
}
output.flush();
output.close();
input.close();
}
catch(Exception e){ }
}
}
Код из основной деятельности:
Intent ServiceIntent = new Intent(this,DownloadService.class);
ServiceIntent.putExtra("DownloadService_URL", "the url...");
ServiceIntent.putExtra("DownloadService_FILENAME", "Test1.rar");
ServiceIntent.putExtra("DownloadService_PATH", "/sdcard/test/");
startService(ServiceIntent);
- Правильно ли использован код для загрузки файлов? Я правильно использую Сервис?
- Я хочу загрузить много файлов .. Так стоит ли мне запускать службу для каждого отдельного URL?
- Я бы хотел проинформировать пользователя о проценте выполнения. Но у Сервиса нет пользовательского интерфейса. Должен ли я сделать это в панели уведомлений?
Спасибо.