Я получаю «размер растрового изображения превышает бюджет виртуальной машины», в конце концов с моим приложением.Поэтому я добавил все эти вещи, чтобы помочь уменьшить растущий объем памяти
BitmapFactory.Options options = new BitmapFactory.Options();
options.inTempStorage = new byte[32*1024];
options.inDither=false; //Disable Dithering mode
options.inPurgeable=true; //Tell to gc that whether it needs free memory, the Bitmap can be cleared
options.inInputShareable=true; //Which kind of reference will be used to recover the Bitmap data after being clear, when it will be used in the future
options.inPreferredConfig = Bitmap.Config.RGB_565;
Drawable pulled = BitmapDrawable.createFromResourceStream(null, null, conn.getInputStream(), "galleryImage", options);
Я также использую weakhashmaps, recycling, System.gc ()
, и все это успешно ПРОДЛЯЕТ сбой.где устройство с кучей 32M изначально могло обрабатывать только несколько изображений до сбоя, теперь оно может обрабатывать дюжину, но это не решает проблему.Проблема заключается в том, что метод BitMap вызывает утечку памяти и просто не очищается.
Как это исправить?Размер изображения 256х357