2013-05-28 1 views
1

robospice 라이브러리를 사용하여 대용량 파일을 다운로드하는 예가 있습니까? 거기에 대한 BigBinaryRequest 읽을 수 있지만 연결 손실/장치 다운로드 duing 파일 다운로드있을 경우 무엇입니까? 다음 번 실행 호출 다운로드가 재시작/재시작되거나 성공 리스너가 손상된 (완전하게 다운로드되지 않은) 파일을 참조하여 실행을 요청할 것입니까?장기 실행 HTTP 요청에 robospice 사용

누군가가 이러한 요청에 대해 robospice를 사용 해본 경험이있을 것입니다.

P. 안드로이드에 기본 DownloadManager가 있다는 것을 알고 있지만, Robospice를 사용하는 것이 더 쉽다고 생각합니다. 어쩌면 내가 틀렸어.

+1

IOException으로 인해 다운로드가 종료되면 (연결이 손실 될 수 있음) 응답이 캐시되지 않으며 다음에 요청할 때 파일이 처음부터 다시 다운로드됩니다. – rciovati

+0

이전 요청이 완료되지 않은 동안 동일한 요청 (동일한 대상 파일, 동일한 URL)을 실행하면 어떻게됩니까? – Lingviston

답변

0

@rciovati 맞았 으면 RS는 캐시에서 결과를로드 할 수 없으므로 중단되면 다운로드가 손실됩니다. 또는 더 나쁜 경우 캐시에서 완성되지 않은 InputStream을받을 수도 있습니다. 이 경우 혼자 캐시 콘텐츠를 제거해야합니다 (달성하기 위해 spicemanager의 방법을 사용하는 것은 매우 쉽습니다).

동일한 캐시 키를 사용하여 큰 입력 스트림을 두 번 다운로드하면 RS에 대한 보호 기능이 없습니다. 캐시가 손상됩니다.

이 답변은 BigBinaryRequest가 제대로 설계되지 않았지만 작동하지 않는 느낌을 줄지 모르지만 내 경험에 따르면 지금까지 만난 모든 경우에 정상적으로 작동합니다.

+0

이미 서브 클래 싱을 사용하고 있습니다 (inputStream 대신 Boolean을 반환합니다. 캐싱 원인은 inputStream이 OOM으로 이어지는 원인입니다). 유일한 것은 다음 요청이 이전 요청이 완료된 후에 만 ​​실행된다는 것입니다. – Lingviston

+0

향신료 서비스에 얼마나 많은 실이 있습니까? – Snicolas

+0

흠, 그냥 샘플 앱에서와 같은 코드를 사용하고 있습니다. 스레드 번호를 사용자 정의 할 수 있는지 여부를 몰랐습니다. – Lingviston