Сложные вопросы деятельности - PullRequest
0 голосов
/ 08 марта 2012

Я думаю, что моя проблема в том, что я неправильно использую наследование.У меня есть 4 действия, все расширяют BaseActivity, который разделяет общий код (onClick, onItemClick, статические и нестатические методы).Каждый вид деятельности получает данные из Интернета, включая изображения.Когда я использую целое приложение в течение более длительного периода времени, у меня возникают ошибки утечки памяти (виртуальная машина не позволяет нам выделять ххх байты), и приложение ломается.

Если я правильно понимаю - это потому, что, расширяя эти 4 действия, я делаю их чем-то вроде внутренних классов Base Activity - поэтому их методы onDestroy () не вызываются при переключении между ними.Более того - GC не восстанавливает ОЗУ, а куча забивается.BaseActivity содержит все данные (например, изображения), что позволяет отображать их при нажатии кнопки «Назад» без необходимости повторного создания данных.

Если это так - другой вариант - разделить их, используя вспомогательные классы для совместного использования общего кода, - но потом, когда я буду переключаться между действиями, они будут загружать его данные снова и снова.

Я прав, и есть ли решение?

1 Ответ

0 голосов
/ 08 марта 2012

Итак, сложно ответить, не увидев некоторый код, но расширение класса Activity не должно вызывать утечек памяти.Скорее всего, вы держите много ненужных данных из ваших веб-запросов.Вы сказали, что скачивали изображения, верно?Я бы начал с поиска там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...