Если я закрываю и открываю свое приложение несколько раз, я в конечном итоге получаю сообщение об ошибке «Недостаточно памяти», значит ли это, что у меня утечка памяти? - PullRequest
0 голосов
/ 02 октября 2011

У меня есть приложение, которое позволяет пользователям выбирать изображение с SD-карты, а затем приложение обрабатывает изображение.Я уменьшаю размер изображения до 1/5 доступной памяти vm, и я вызываю recycle () для каждого растрового изображения в вызове onDestroy (), и я по-прежнему выхожу из памяти, если закрываю и открываю свое приложение несколько раз.

Ответы [ 2 ]

2 голосов
/ 03 октября 2011

Существуют различные сценарии утечки памяти в Android.Один из способов отследить их - использовать инструмент Traceview http://developer.android.com/guide/developing/debugging/debugging-tracing.html.

. Для получения дополнительной информации о распространенных проблемах утечки памяти в Android см. http://android -developers.blogspot.co.uk / 2009/01/avoiding-memory-leaks.html

0 голосов
/ 03 октября 2011

Обратите внимание, что когда вы завершаете последнее Activity приложения, процесс Java вашего приложения может (в большинстве случаев будет) работать, что означает, что все статические элементы все еще живы, когда вы "запускаете" приложение снова.Храните ли вы тяжелые предметы в статических полях?

Также обратите внимание, что в соответствии с жизненным циклом Activity вызов onDestroy() не гарантированно вызывается.Однако я не думаю, что это связано с тем, что когда вы (по сравнению с ОС) закрываете Activity (либо нажав кнопку «Назад», либо вызывая finish() из кода), тогда ОС всегда вызывает onDestroy().

В общем, не видя код, сложно сказать, что происходит.

...