Правильная очистка активности Android для уменьшения объема памяти
Возможно, этот вопрос двоякий:
Цель состоит в том, чтобы уменьшить объем занимаемой памяти приложения Android и обеспечить разумное использование на устройствах с низким / средним разрешением DPI и 512 МБ оперативной памяти или менее (устаревшие / исправленные телефоны / и т. Д.)
Что я наблюдаю, так это то, что после навигации по нескольким Действиям производительность падает, предполагая из-за того, что созданные Действия кэшируются.
Каков предпочтительный способ очистки между навигацией "Активность" с целью уменьшить объем используемой памяти?
1 ответ
Вы написали
What's the preferred way to clean up in between Activity navigation aiming to reduce memory footprint?
Вы можете очистить стек Activity, выполнив следующие действия при запуске нового Activity:
Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Это закроет все действия, кроме NextActivity.
Вы можете указать в своем Манифесте, что действие не должно "жить" при запуске другого действия:
<activity
android:name=".CurrentActivity"
//...
android:noHistory="true"/>
Вы также должны убедиться, что закрытые действия не просочились, например, вам нужно отменить регистрацию всех BroadcastReceivers, которые были зарегистрированы в вашем действии, когда вы вызываете onPause() или onStop().
Детали в конечном итоге будут зависеть от специфики вашего приложения.