2015-05-04 3 views
1

Я делаю приложение, при нажатии на которое должен быть загружен выбранный список композиций, и мне нужно начать загрузку файла только в том случае, если файл до завершения загрузки. Есть ли способ подтвердить это?Проверьте, когда файл закончил загрузку в Eclipse

+1

Вы должны использовать транзакции и асинхронную связь. Другим способом я мог бы использовать простую очередь с синхронизированными потоками –

+0

Не могли бы вы привести мне пример? Или ссылку? Было бы полезно. –

+1

Я думаю, что Pshemo написал хороший ответ, вы также можете посмотреть там: http://stackoverflow.com/questions/8323955/download-files-in-queue-in-android –

ответ

1

Я не Android или многопоточной эксперта, так что может быть более эффективные способы сделать это, но от того, что я помню, вы могли бы использовать Executors для этого сценария, как

ExecutorService es = Executors.newFixedThreadPool(1);// allow only one task to run, 
                // place rest of task in queue 
es.execute(new Runnable() { 
    @Override 
    public void run() { 
     //download file one 
    } 
}); 
es.execute(new Runnable() { 
    @Override 
    public void run() { 
     //download file two 
    } 
}); 

Загрузка файла второй задачи будет выполняется только в том случае, если код предыдущей задачи завершится.

+0

Будет ли это работать, если я выберу цикл вокруг него ? Плюс, я открою загружаемую ссылку. Следовательно, задача состоит только в том, чтобы открыть ссылку через браузер или менеджер загрузок по умолчанию. –

+0

@VirenChugh Я не вижу причины, почему это не сработает, но, как я уже сказал, я не специалист по Android. Вам нужно попробовать. Или, возможно, сначала взгляните на ссылку, предоставленную @ MarcinErbel в комментарии по вашему вопросу. Этот ответ кажется разумным. – Pshemo

+0

Пробовал. Я тоже понимаю эту концепцию. Одновременно открывает обе ссылки. Это связано с тем, что моя функция не загружает файл, а просто открывает ссылку, которая запускает загрузку. Следовательно, как только это будет сделано, он переходит к следующему файлу. Но это действительно помогает мне в другом проекте, так что спасибо. :) –