Как убрать активность в нижней части стека активности?

В моем приложении у меня около десятка Активов. Однако большинство из них имеют несколько горячих клавиш, поэтому пользователь может запускать самые важные из любого места в приложении. Это означает, что пользователь может просто прыгать по приложению, заполняя стек Activitiy деятельностью. Я не могу изменить это поведение, потому что мне нужна функция истории, которую предоставляет стек (поэтому я не могу просто использовать опцию noHistory).

Очевидно, я хотел бы сделать что-то против этой возможной утечки памяти. Можно ли удалить запись из нижней части стека активности, если размер стека больше определенного числа? Таким образом, стек запоминает только самые новые действия X (например, 30)?

Спасибо

2 ответа

Решение

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

Какая возможная утечка памяти? Android будет уничтожать действия, необходимые для восстановления памяти. Если пользователь BACK-кнопок свой путь к одному Android уничтожил, активность будет воссоздана с ее оригиналом Intent и передал пакет, который вы заполнили через onSaveInstanceState(),

Можно ли удалить запись из нижней части стека активности, если размер стека больше определенного числа? Таким образом, стек запоминает только самые новые действия X (например, 30)?

Не то, чтобы я в курсе. Опять же, вам это не нужно.

История стека будет управляться Android Runtime; вам не нужно беспокоиться об этом.

Однако, если вы запустили действие раньше и хотите перенести его на передний план, вы можете сделать это, установив соответствующие флажки намерений(например, ACTIVITY_FLAG_REORDER_TO_FRONT). Таким образом у вас не будет дублирующихся операций в стеке, если это не нужно. Обратите внимание, что это повлияет на хронологию / линейный характер истории.

Другие вопросы по тегам