2013-08-14 4 views
-1

Android에 대한 간단한 다운로더를 만드는 방법을 알고 있습니다. 트릭은 간단합니다. 연결하고, 데이터를 받기 시작하고, 데이터를받는 것과 같은 방법으로 데이터를 파일에 저장하면 결국 파일을 다운로드하게됩니다.어디에서 다운로드를 다시 시작 하시겠습니까?

하지만 pause & resume 기능을 추가하려면 어떻게해야합니까?

좋아, 내가 파일의 길이를 받고 그것을 HttpURLConnection에서 콘텐츠 길이와 비교하고 그 옆에 바이트를 작성하여 작성된 얼마나 많은 바이트를 이해할 수 있습니다.

서버가 처음부터 바이트를 보내지 않고 필요한 바이트를 보내도록 지시하려면 어떻게합니까?

참고 :이 질문에 도움이되는 기존 라이브러리가 필요하지 않습니다.

+1

일반적인 다운로드 서버의 작동 방식이 아닙니다. 기능을 일시 중지했다가 다시 시작하려면 특수 프로토콜이 필요합니다. –

+0

@SotiriosDelimanolis 정교하게하십시오? :) –

+0

당신은 귀하의 요청에 전화에 저장된 파일의 크기를 보낼 수 있습니다 다음 서버에 그 크기를 얻을 파일의 다음 조각을 보내기 시작합니다. – Tobiel

답변

1

Android 개발자 문서에서 DownloadManager 클래스를 조사하고 싶을 수 있습니다.

이 문서에서, 그것은 언급 :

다운로드 관리자는 HTTP 다운로드를 장기 실행 처리하는 시스템 서비스입니다. 클라이언트는 특정 대상 파일에 URI를 다운로드하도록 요청할 수 있습니다. 다운로드 관리자는 백그라운드에서 다운로드를 다시 시도하거나 연결이 변경된 후 시스템 재부팅 후 다운로드를 수행하여 백그라운드에서 다운로드를 수행합니다.

이 DownloadManager 클래스는 API 9+ (진저 브레드 이상)에서 사용할 수 있습니다.

+0

아이디어는 더 많은 것을 배우기 위해 바퀴를 다시 발명하는 것입니다. 나는 학생이다 :-) –

+0

'DownloadManager'는 시작하고 멈추는 방법을 제공합니까? –

+0

왜 -1일까요? Stackoverflow는 사람들이 바퀴를 다시 발명하는 것을 피할 수있는 메커니즘으로 자주 사용됩니다. 질문은 도서관을 피할 필요가 있다고 말하지 않았습니다 ... 귀하의 질문에이 규정을 추가하십시오. 다른 사람들은 DownloadHelper 클래스에 대한 지식을 활용할 수 있습니다. – MiStr

관련 문제