2012-01-07 2 views
1

파일을 다운로드하는 서비스가 있습니다. 이 파일은 최대 200MB까지 가능합니다. 이 파일을 다운로드 할 때 연결이 완전히 사용되었으므로 다른 HTTP 요청을 수행 할 수 없습니다. 작은 배경 요청을 보내고받을 수 있도록 다운로드 속도를 제한 할 수 있습니까?백그라운드 작업의 다운로드 속도가 느려 집니까?

답변

-1

다운로드 파일의 코드가 모두 Thread입니까?

Service를 사용하면 하지이 코드는 별도의 Thread에서 실행됩니다 것을 의미한다. 사실 onCreate(), onBind() 및 기타 같은 Service 수명주기 방법은 응용 프로그램 스레드에서 호출됩니다. 메인 스레드에서 네트워크에서 무언가를 다운로드하면 다른 요청을 차단할 수 있습니다. 어쨌든, 네트워크/데이터베이스/파일과 함께 작동하는 모든 코드는 별도의 스레드에서 실행되어야합니다.

네트워크 작업에 별도의 스레드를 사용하는 경우 각 사이클 사이에 Thread.sleep(10)을 삽입하면 스트림에서 데이터를 읽을 수 있습니다.

+0

모든 다운로드가 스레드에서 실행 중입니다. Thread.sleep은 내가 다운로드 속도를 설정할 수 없기 때문에 내가 쓰고 싶은 것이 아니다. 200kb/s 또는 30kb/s. –

관련 문제