Подтвердить что ты не робот

Как работает андроид: noHistory = "true"?

Предположим, что у меня есть базовое действие с меню, когда я нажимаю на пункт меню A, он переходит в действие A. Я снова открываю меню и перехожу к B. Из BI вернитесь в A, а назад и четвертый как это какое-то время.

Таким образом, стек будет A, B, A, B, A, B,.... И когда я нажимаю кнопку "Назад", он возвращается назад через стек, как ожидалось.

Однако, скажем, мне не нужна эта функциональность, поэтому я добавляю к моему манифесту android:noHistory="true". Поэтому, когда я нажимаю кнопку "Назад", он выходит из приложения вместо того, чтобы идти через стек.

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

Но, используя noHistory="true", существует ли истинный стек A, B, A, B, A, B? Скорее, это каждый вызов активности с помощью меню, создающего новую копию этого действия, но пользователь не может его увидеть? Будет ли это причиной проблем с ресурсами?

Или, когда noHistory="false", кнопка возврата снова вызывает что-то вроде startAcitvity(intent) снова или происходит через каждую новую копию, которая была создана?

Я беспокоюсь о проблемах с ресурсами и не замедляю работу устройства Android.

4b9b3361

Ответ 1

Из docs о noHistory:

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

Относительно вашего вопроса:

существует ли истинный стек A, B, A, B, A, B?

Документы указывают на отсутствие.

Я беспокоюсь о проблемах с ресурсами и не замедляю работу устройства Android.

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