안녕하세요.

 

서버에 있는 원격이미지들을 sdcard에 다운로드를 하려고 합니다.

 

파싱으로 이미지의 갯수와  url을 받아서 다이얼로그 하나 돌리고 백그라운드로 thread를 돌려서 하나하나 다운로드를 하고 있습니다.

그런데 용량이 작은 이미지들은 빠르게 다운로드가 잘되는데 용량이 조금 큰 이미지들은

다운로드 중간에 다운로드 진행이 안되고 그대로 다이얼로그만 돌아갑니다.

 

한번에 다운로드 받는 이미지의 갯수는 10개 전후이고 개당 크기는 100K ~ 1M  사이에 있습니다.

 

사용하는 소스는 아래와 같습니다.

...중략...

  InputStream inputStream = null;
  FileOutputStream fileOutputStream = null;
  byte[] buf = new byte[100];
  try {
   inputStream = new URL("imageURL).openStream();
   fileOutputStream = new FileOutputStream(file);
   int cnt = 0;
   while ((cnt = inputStream.read(buf)) != -1) {
    fileOutputStream.write(buf, 0, cnt);
    fileOutputStream.flush();
   }
   result = true;
  } catch (){}

 

좀더 안전하게 다운로드를 받는 방법이나 로직등

조언 부탁드립니다.

profile

give & take