2013-05-28 2 views
1

Есть ли какой-нибудь пример использования библиотеки robospice для загрузки больших файлов? Я читал, что есть BigBinaryRequest для него, но что, если будет потеряна связь потеряна/перезагрузка загрузочного файла? После следующего выполнения загрузка вызова возобновится/перезагрузится или попросит прослушиватель успеваемости будет работать со ссылкой на поврежденный (не полностью загруженный) файл?Использование robospice для длинных HTTP-запросов

Возможно, у кого-то есть опыт использования robospice для таких запросов.

P.S. Я знаю, что в Android есть собственный DownloadManager, но я считаю, что использование robospice проще. Возможно, я ошибаюсь.

+1

Если выход для выхода из-за исключения IOException (который правдоподобен для потери связи), ответ не будет кэшироваться, и ваш файл будет загружен снова с нуля в следующий раз, когда вы сделаете запрос. – rciovati

+0

Что делать, если я буду выполнять один и тот же запрос (тот же файл назначения, тот же URL-адрес), пока предыдущий не завершен? – Lingviston

ответ

0

@ rciovati получил это право, ваша загрузка, если прервана, будет потеряна, поскольку RS не сможет загрузить результат из кеша. Или, что еще хуже, вы могли получить неполный InputStream из кеша. В этом случае вы должны удалить содержимое кеша самостоятельно (использование метода spicemanager для его достижения довольно просто).

Если вы загружаете в два раза большой поток ввода, используя тот же ключ кеша, в RS нет защиты от этого. Ваш кеш будет поврежден.

Этот ответ может дать вам ощущение, что BigBinaryRequest плохо разработан и не работает, но, по моему опыту, он отлично работает во всех случаях, которые я встречал до сих пор.

+0

Я уже использую его подкласс (возвращаем Boolean вместо inputStream, потому что кэширование inputStream приводит к OOM). Единственное, что раздражает, это то, что следующий запрос будет выполнен только после завершения предыдущего. – Lingviston

+0

Сколько потоков в вашей службе специй? – Snicolas

+0

Хм, я просто использую тот же код, что и в примере приложения. Не знал, что номер потока настраивается. – Lingviston

Смежные вопросы