Я получаю исключение OutOfMemoryError, появившееся после нескольких загрузок основного экрана моих приложений. Приложение загружает данные и фоновое изображение о местоположении. Есть несколько вариантов выбора, и после 5-6 разных вариантов выбора куча превышает 192 МБ, и я получаю свою ошибку. Я считаю, что проблемы сводятся к тому, что я плохо использую растровые изображения.OutOfMemoryError - Разрушение размера кучи с растровыми изображениями
Мой код довольно длинный и неясный, поэтому я приведу пример и, надеюсь, кто-то может мне помочь, поскольку я думаю, что не могу понять основы управления памятью изображений (я прочитал документацию и широко исследовал, Я смотрю, чтобы в идеале поговорить с кем-то об этом).
У меня есть if с 5 условиями, каждый возвращает другое изображение. Я конвертирую изображение в растровое изображение и устанавливаю его как новый доступный источник для моего основного макета.
Затем я делаю это снова, ту же функцию, но в другом месте, с другим изображением.
После этого несколько раз все эти загружаемые изображения, похоже, остаются в памяти и засоряют его, что приводит к ошибке. Попытка сохранить это очень просто, какие шаги я должен выполнять между загрузкой этих разных изображений в мой макет фона, чтобы предотвратить эту проблему?
192MB гораздо больше, чем вы будете получать в большом количестве телефонов. Обычно вам нужно спуститься до ~ 32 МБ. К счастью, эти устройства обычно имеют менее плотные экраны, поэтому вам не нужно зацикливать на экране столько пикселей. Это полезный ресурс для обработки растровых изображений: http://developer.android.com/training/displaying-bitmaps/index.html – asdasd