1

웹 API의 텍스트 전용 데이터를 요청하고 있습니다.이 데이터는 ~ 5MB 또는 ~ 1KB 정도 될 수 있습니다.HttpUrlConnection보다 언제 DownloadManager를 사용 하시겠습니까?

시간 초과 가능성과 메모리 풋 프린트가 5MB InputStream이므로 HttpUrlConnection을 사용하는 것을 주저합니다. 안드로이드 문서에서

:

The download manager is a system service that handles long-running HTTP downloads.

는 다음과 같이 5메가바이트 수를합니까 "장기 실행?" HttpUrlConnection의 의도 된 용도는 작은 데이터 패킷을위한 것으로 5MB의 텍스트가 아닙니다.

답변

2

는 내가 우려 타이밍을에 대하여 무엇 확실하지 않다 HttpURLConnection의 때문에 타이밍의 증가 가능성 밖으로

의 사용을 주저입니다. 합리적인 속도로 데이터를 다운로드하는 한, 서버가 연결을 포기하는 이유를 알 수 없습니다.

이제는 사용자가 이동하고 감아 올려 연결을 끊는 문제가 발생할 수 있습니다 (예 : WiFi에서 모바일 데이터로 장애 조치).

및 5 메가 바이트의 InputStream

InputStream의 메모리 풋 프린트 5메가바이트 아니다. 이 정도의 크기라면 보통 한 번에 몇 KB를 읽고 결과를 파일에 씁니다.

"장기 실행"으로 간주 되나요?

여러분에게 달려 있습니다. 내가 생각하기에 충분히 크다 DownloadManager.

HttpUrlConnection의 의도 된 용도는 5MB의 텍스트가 아닌 작은 데이터 패킷에 대한 것 같습니다.

HttpURLConnection은 1 바이트에서 1 테라 바이트까지 이론적으로는 모두 사용됩니다. DownloadManager은 아마도 HttpURLConnection을 사용합니다. 당신을 위해 무엇을 DownloadManager

은 다음과 같습니다

  • 핸들 연결 페일 오버 및 다운로드가
  • 에 진행되는 동안 깨어있는 장치를 유지 다운로드
  • 을 따기
  • 관련 문제