Моя активность A
имеет переменную b
, которая имеет ссылку на список растровых изображений:
A.b.bitmaps = new ArrayList<Bitmap>();
Список заполняется моим приложением, и последнее растровое изображение в списке отображается в ImageView для действия:
imgView.setImageBitmap(lastBitmap);
Затем я запускаю действие другого приложения для совместного использования в социальных сетях, но когда обмен завершен, и мое действие возвращается на передний план, мое приложение вылетает.
java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@15c6d7b
at ...
Растровое изображение lastBitmap
. Я предполагаю, что это как-то выпущено и вылетает из приложения, когда используется для рисования imageView.
Почему он перерабатывается, когда и imageView, и моя переменная экземпляра имеют сильные ссылки на растровое изображение?
P.S. Я предполагаю, что сборка мусора как-то запускается при переключении приложений, и все растровые изображения перерабатываются. Тогда возникает вопрос, как я могу предотвратить повторное использование растрового изображения в GC? Что-то вроде Bitmap.disableRecycling()
?