Избегайте утечки памяти Android, когда не используете статическое изображение - PullRequest
4 голосов
/ 01 октября 2011

Я знаю, что это, вероятно, было решено, однако у меня есть проблемы утечки памяти в моем приложении для Android.У меня есть это циклически изменяющееся изображение в библиотеке пользователей каждый раз, когда они нажимают кнопку.Это отлично работает для первой пары, а затем выдает исключение нехватки памяти.Я огляделся и хотя понял, что картинки хранятся в куче (?) Даже после того, как на нее не указали.Есть ли способ заставить это убрать, чтобы я не получил ошибку?Я пробовал следующее ....

private void setImage() throws RemoteException{
    view.setBackgroundDrawable(null);
    currentBackground = Drawable.createFromPath(backgroundImageService.getCurrentImageLocation());
    view.setBackgroundDrawable(currentBackground);
}

ОБНОВЛЕНИЕ :: Обновление Это сработало !!!

private void setImage() throws RemoteException{
    if(currentBackground != null){
        currentBackground.recycle();
    }
    currentBackground = BitmapFactory.decodeFile(backgroundImageService.getCurrentImageLocation());
    view.setBackgroundDrawable(new BitmapDrawable(currentBackground));
}

Спасибо

1 Ответ

4 голосов
/ 01 октября 2011

вы можете использовать Bitmap.recycle () , если вы можете изменить Drawable с помощью Bitmap.

...