Android AsyncTask скачать ошибки изображения - PullRequest
0 голосов
/ 10 ноября 2010
   private static class asyncDownloadImage extends AsyncTask<Object, Integer, Integer> 
    {
        Bitmap _image=null;

        @Override
        protected Integer doInBackground(Object... params) {

            String _url=com.nag.online.utils.objectToString(params[0]);

            byte tries=0;

            do  {
                _image          = com.nag.online.utils.downloadPicture(_url);

                try {Thread.sleep(10);} catch (InterruptedException e) {    e.printStackTrace(); }

                tries++; if (tries>utils.TRIES) break;
            } while (_image==null);

            final Bitmap _imagex=_image;

            Runnable r = new Runnable() {   
                public void run() {   
                    ImageViewImage.setImageBitmap(_imagex);
                    ImageViewImage.setScaleType(ScaleType.CENTER);
                    ImageViewImage.refreshDrawableState();
                }};

            handler.post(r);  
            isReady=true;

            return 0;
      }

        @Override
        protected void onPostExecute(Integer result) {
            /*if (!_image.isRecycled()) {
                _image.recycle();
                _image=null;
                System.gc();
            }*/

            System.gc();
        }
    }

я получаю:

11-10 13: 32: 07.057: ОШИБКА / dalvikvm (4904): Недостаточно памяти: Размер кучи = 8455 КБ, Выделено = 5755 КБ, Размер растрового изображения = 7855 КБ

или когда я помещаю это в свой код на onPostExecute:

 if (!_image.isRecycled()) {
                _image.recycle();
                _image=null;
                System.gc();
            }

, тогда я получаю:

11-10 13: 40: 55.117: ОШИБКА / AndroidRuntime (4981): java.lang.RuntimeException: Canvas: попытка использовать переработанное растровое изображение android.graphics.Bitmap@44cadc98

Какое решение для этого?

1 Ответ

1 голос
/ 10 ноября 2010

Не изобретать велосипед.

Кто-то уже сделал это.Найдите его здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...