У меня есть приложение Android Honeycomb с двумя действиями;первый имеет большой Bitmap
(взятый из ресурсов) в качестве фона для основного LinearLayout
, и я обнаружил, что установка фона этого элемента на null
из метода onStop()
действия может спасти многопамять - около 5 МБ, на самом деле.
Однако, похоже, это работает, только когда я нажимаю кнопку «сна» на устройстве.Если я сделаю это, профилировщик покажет, что 5 МБ выпадают из мира так легко, как вам нравится.Если я начну второе действие, onStop()
первого действия не будет получено до тех пор, пока не будет выполнено действие onCreate()
второго действия, и профилировщик предполагает, что BitmapDrawable
в конце концов не удаляется из памяти - так что он сидит, пять невидимыхбесполезные мегабайты, загромождающие место.
Я мог бы удалить это из onPause()
, что могло бы работать лучше, но я также использую методы onStop()
различных элементов Dialog
, чтобы обнулить их фоновые рисункитакже.Похоже, что у них нет методов onPause()
.
Есть ли рекомендуемый метод для избавления от этих видов больших, занимающих память элементов при запуске другого действия?