Я пытаюсь очистить некоторые виды из памяти.
Вот ситуация.У меня есть действие, которое я назову «А», а другое «Б».
Теперь я нажимаю кнопку в «Деятельности А», которая вызывает «Деятельность Б», которая динамически создает множество просмотров. После этого я нажимаю кнопку «Назад», чтобы вернуться кУпражнение A Повторяйте эти 2 шага много раз.
В результате в DDMS увеличивается количество объектов и памяти. Выделенные кадры растут (количество объектов увеличивается на 88, а количество выделяется на 0,002 МБ).виды не могут быть удалены из памяти!
Как я могу полностью очистить виды из памяти?
Thx!
Обновление - здесь вы получите новую информацию
По сути, в моем "реальном мире" у меня есть только одна активность, которая создается много раз.Это происходит потому, что я должен связаться с веб-сервисом, и все ответы создаются в этом новом экземпляре этого действия.
Я попытался решить эту проблему с помощью кода ниже
@Override
protected void onDestroy() {
super.onDestroy();
nullViewDrawablesRecursive(mRootView);
mRootView = null;
System.gc();
}
и это мой nullViewDrawablesRecursive
private void nullViewDrawablesRecursive(View view) {
if (view != null) {
try {
ViewGroup viewGroup = (ViewGroup) view;
int childCount = viewGroup.getChildCount();
for (int index = 0; index < childCount; index++) {
View child = viewGroup.getChildAt(index);
nullViewDrawablesRecursive(child);
}
} catch (Exception e) {
}
nullViewDrawable(view);
}
}
И это мой nullViewDrawable
private void nullViewDrawable(View view) {
try {
view.setBackgroundDrawable(null);
} catch (Exception e) {
}
try {
ImageView imageView = (ImageView) view;
imageView.setImageDrawable(null);
imageView.setBackgroundDrawable(null);
} catch (Exception e) {
}
}
В основном я пытаюсь удалить все представления и дочерние элементы из их родителя (mRootView) перед уничтожением действия,Это работает довольно хорошо, если я этого не сделаю, объекты и использование памяти будут увеличиваться все больше и больше.
Дело в том, что он не идеален, по-видимому, некоторые типы представлений не разрушаются.И я думаю, что я "заново изобретаю колесо", мне кажется, чертовски сложно из-за простой вещи!
Опять же, большое спасибо за попытку помочь мне!