망가

2013-05-27 2 views
2

내가 Server.The 문제에 배치 이미지에서 스프라이트를 제작하고이 코드를 통해 코드망가

ITexture mTexture = new BitmapTexture(
          mEngine.getTextureManager(), 
          new IInputStreamOpener() { 
           @Override 
           public InputStream open() 
             throws IOException { 


            URL url = new URL(
              "http://tenlogix.com/cupcakemania/"+ImageName+".png"); 

            HttpURLConnection connection = (HttpURLConnection) url 
              .openConnection(); 
            connection.setDoInput(true); 
            connection.connect(); 
            InputStream input = connection 
              .getInputStream(); 
            BufferedInputStream in = new BufferedInputStream(
              input); 
            return in; 
           } 
          },TextureOptions.BILINEAR_PREMULTIPLYALPHA); 

의 다음 부분에서 참조하시기 바랍니다 AndEngine 안드로이드에 onResume에서 서버에서 텍스처를 다시로드하려면 onPaused가 호출되면 AndEngine이 모든 리소스를 언로드 한 다음 onResume에서 엔진이 리소스를 다시로드합니다. 이 텍스처는 웹에 배치 된 이미지로 만들어지기 때문에 다시로드하는 데 시간이 걸립니다. 이것을 피할 수있는 방법이 있습니까? 나는 다시 그것을 다시로드하고 싶지 않다. 일단로드되면 언젠가 언젠가는 언젠가 언젠가는 내가 원할 때까지로드되지 않아야한다. 백그라운드에서 비동기 작업으로이 작업을하고 있습니다. 내 문제에 대한 해결책을 알게되어 기쁩니다. 감사합니다.

+0

게임로드 (스플래시 화면) 중에 내부/외부 저장소에 이미지를로드하고 캐시합니까? 네트워크는 어디에도 없습니다. –

답변

0

onPause에서이 리소스를 해제하지 마십시오. onPause 만 호출되면 앱이 본질적으로 전경에 있지만 예 : 화면이 꺼져 있거나 부분적으로 불투명 한 팝업 대화 상자가있을 수 있습니다. UI를 그대로 유지하고 onResume에서 오랜 지연을 원하지는 않을 것입니다.

onStop 또는 onDestroy/onDestroyResources에서 더 잘 릴리스하십시오. 다른 앱이 포 그라운드를 차지하지만 앱이 완전히 종료되지 않은 경우 onStop이 호출됩니다. 앱이 완전히 종료되면 onDestroy가 호출됩니다. onCreateResources에서 이미지를로드하고 onDestroyResources에서 이미지를 언로드하는 것이 좋습니다.

다른 의견 제시자가 제안한 것처럼 인터넷 연결없이 앱을 시작할 수 있도록 이미지를 로컬로 캐싱하는 것도 고려해야합니다. 내 생각에 APK로 이미지를 패키징하지 않아야하는 이유가 있지만 최소한 APK에 자리 표시 자 이미지를 제공하고 필요에 따라 업데이트 된 이미지를 다운로드/캐싱하는 것이 좋습니다. 이미지를 캐싱하지 않으려면 자리 표시자를 빠르게 표시하고 원격 이미지를로드하고 비동기 적으로 교체 할 수 있습니다.

+0

장치 또는 APK에 저장하는 것은 나에게 유용하지 않습니다. 나는 구현 한 솔루션을 가지고 있는데, 그 이미지에서 텍스처와 스프라이트를 만드는 대신 서버의 이미지에서 드로어 블 비트 맵을 만들지 않고있다. 문제는 이제 해결되었다. 도움과 지원에 감사드립니다. –

관련 문제