마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

android) 다운로드 관련 질문 드립니다.

0 추천
현재 막히는 부분이 리소스 다운로드 관련 부분인데요.

저는 개인서버에 리소스 이미지들을 올려놓고 어플이 실행될때(스플래시화면) 앱 버전 체크 후 리소스 버전을 체크합니다.

이때 리소스 버전이 다르면 WebClient.DownloadFileAsync를 이용해 리소스를 다운받습니다.

헌데 여기서 로그캣을 찍어보니 잘 진행되어 내려오다가 DownloadFileAsync이 들어가 있는 함수에서 있다 다시 위로 올라가버립니다.

그러다보니 다시 똑같은 소스를 반복하고, 반복하고 하다 어플이 정지 되어 버립니다.

제 예상에는 completed(다 다운받기 전에) 전 이므로 불러왔던 곳으로 다시 올라가는것 같은데..

제 생각이 맞는건가요? 그럼 하나의 리소스가 completed될 때까지 기다렸다가 완료되면 다시 다음 리소스 다운받고 하는 방식은 어떤식으로 해야하나요?

지금 제 구조가 잡다한것은 빼버리고(메소드 단위로 나눠서 표현했습니다.)

 

잡다한 메소드들 ->

앱버전 체크완료(앱 버전 동일하면) ->

리소스 체크를 시작하는 메소드 진입 ->

리소스 명과 버전들을 저장해 놓은 메소드 진입 ->

리소스 버전과 리소스 명을 가지고 리소스 버전체크 메소드 진입 ->

리소스 버전이 다르다면 리소스 다운로드 메소드 진입

 

이런식입니다.

여기서 마지막에 리소스 다운로드 메소드에서, 상단에 설명 했다시피 DownloadFileAsync로 리소스를 다운로드 하는데

completed가 불려지기도 전에 다시 앱버전 체크하는 메소드로 올라가서 아래 메소드를 반복합니다.

그러다가 처음에 다운로드를 시작했던 리소스가 completed 되면 반복되던 메소드 때문에 또 다운받고 다운받고

하는 현상이 생깁니다.

저는 하나의 리소스가 다운로드 완료되면 다음 리소스를 다운 받게 하고 싶습니다..ㅠㅠ

안드로이드 고수분들의 많은 관심과 조언 부탁드립니다!!
익명사용자 님이 2015년 1월 21일 질문
이렇게 설명하시면 답변하기 힘듭니다.

작성자는 나름대로 자세히 설명한다고 하셨는데
답변자 입장에서는 어떻게 답변을 할 수 없습니다.

할수 있는 거라고는
제가 보기에는 작성자가 로직을 잘못 짜서 해당 메소드를 반복으로 호출 하는것 같습니다.

뭐가 잘못되었는지 알고 싶다면 소스를 같이 올리시는게 좋습니다.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...