2014-11-14 4 views
2

내 Android 애플리케이션에서 유니버설 이미지 로더 라이브러리를 사용하여 이미지를로드하려면 인터넷에서 이미지를로드하고 표시해야합니다. 응용 프로그램에서 나는 json (일부 URL은 서버에 이미지가 없습니다)에서 이미지 링크를 얻을. 내 문제는 범용 이미지 로더가 인터넷 문제 또는 파일이 서버에서 찾을 수없는 FailType.IO_ERROR (실패 이유)를 던졌습니다. 인터넷 문제와 서버에서 파일을 찾을 수 없습니까?, FailType.IO_ERROR (fail reason) 카테고리의 인터넷 문제가 아닌 서버에서 파일을 찾을 수없는 경우에만 경고를 표시해야하기 때문입니다.Android 유니버설 이미지 로더 이미지가 존재하지 않을 때 서버에없는 파일을 찾는 방법

    imageLoader.displayImage(linkOfImage, imageView, new ImageLoadingListener() { 

         @Override 
         public void onLoadingStarted(String arg0, View arg1) { 

         } 

         @Override 
         public void onLoadingFailed(String arg0, View arg1, 
           FailReason failed) { 
          FailType failType = failed.getType(); 
          int failedCode = failType.ordinal(); 
          if (failedCode == FailType.IO_ERROR.ordinal()) { 
//       I reach here for both internet and file not found in the server 
          }else if (failedCode == FailType.DECODING_ERROR.ordinal()) { 

          } else if (failedCode == FailType.NETWORK_DENIED.ordinal()) { 

          } else if (failedCode == FailType.OUT_OF_MEMORY.ordinal()) { 

          } else if (failedCode == FailType.UNKNOWN.ordinal()) { 

          } 

         } 

         @Override 
         public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) { 
      //   ........... 
         } 

         @Override 
         public void onLoadingCancelled(String arg0, View arg1) { 

         } 
        }); 

나는 모든 FailReason 유형을 나열 :

내가 이미지 로딩에 사용되는 코드입니다. 이미지가 특정 링크에 대해 서버에 없거나 인터넷이 존재하지 않으면 둘 모두에 대해 오류 코드 0 (FailType.IO_ERROR)이 표시됩니다.

두 가지 예외의 차이점을 알아 보도록 도와주세요.이 작업은 저에게 중요합니다. 덕분에 사전.

+0

try/catch가 예외를 잡아낼 수있는 곳은 어디입니까? 나는 아무 예외도 던지고있는 로더를 보지 않는다. – greenapps

+0

onLoadingFailed 메서드에서 try/catch를 사용하지 않았습니다. 시도/놓을 곳을 알려주세요. –

+0

'로더가 양쪽 모두에서 예외를 발생시킵니다 .'. 그렇지? 미안하지만 아무 예외도 발생하지 않습니다. 'FailReason failed '. .getType()과 같은 다른 멤버가 없습니까? arg0와 arg1에 어떤 종류의 정보가 있습니까? – greenapps

답변

1

당신은 던져 예외를 얻을 수 failReason.getCause().

그러면 failReason.getCause() instanceof FileNotFoundException 또는 failReason.getCause() instanceof SocketTimeoutException을 확인할 수 있습니다. 그런 것.

+0

하지만 파일이 서버에 존재하지 않으면 여전히 'FileNotFoundException'이 발생합니다. 솔루션이없는 것 같습니다. – Trancer