Загрузить несколько файлов с помощью службы в Android

В моем приложении много дополнительных данных, которые можно загрузить поэтому я решил использовать Сервис для обработки всех загрузок в фоновом режиме. Я начал изучать его и вот где я получил:

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);
  1. Правильно ли используется код для загрузки файлов ? Правильно ли я использую Сервис?
  2. Я хочу загрузить много файлов .. Так следует ли мне запускать службу для каждого отдельного URL?
  3. Я хотел бы проинформировать пользователя о проценте выполненных работ .. Но у Сервиса нет пользовательского интерфейса. Должен ли я сделать это в панели уведомлений?

Спасибо.

5
задан Pratik Butani 30 May 2014 в 06:23
поделиться