Я создал живые обои, которые отображают анимацию, сохраняя около 70 изображений в массиве, а затем отображая их по одному для создания анимации. Я использовал структуру CubeEngine, чтобы спроектировать ее. По большей части это работает.
При первом выборе обоев загружается массив и отображается анимация. Затем, когда я нажимаю кнопку «Установить обои», я получаю «OutOfMemoryError: размер растрового изображения превышает бюджет ВМ». Я добавил вызовы bitmap.recycle (), чтобы решить эту проблему.
Я поместил Log.d во все события, чтобы попытаться понять поток событий. То, на что это похоже, - то, когда кнопка "Установить обои" нажата, поток идет прямо в Конструктор.
Событие onDestroy или onSurfaceChanged не запускаются, как и любое другое событие, кроме onTouchEvent.
Итак, мой исходный массив изображений находится в памяти, и когда он выполняет конструктор, он пытается загрузить другой массив с изображениями и не хватает памяти.
Я не могу найти событие для добавления логики для очистки моего исходного массива, когда они нажимают кнопку "Установить обои".
Есть ли способ добавить логику к кнопке "Установить обои" или есть другое событие, которое я могу добавить в свой код, где я смогу это сделать?
Я видел, как у других была эта проблема, но не видел решения.
Любые предложения будут оценены.