#android
#Android
Вопрос:
Я хотел бы знать, возможно ли сохранить в истории только 1 из каждого действия? У меня есть интерфейс, похожий на вкладку, и когда пользователь переключается между действиями, он запоминает их в истории.
Я попробовал атрибут noHistory, но это приведет к тому, что действия вообще не будут попадать в историю. В идеале я хотел бы иметь историю, но заставить ее работать следующим образом:
Сценарий: Act1-> Act2-> Act1-> Act2
В «стандартной» настройке при нажатии «назад» она будет разматываться как Act1-> Act2-> Act1-> GONE
В режиме «Без истории» при нажатии «назад» это будет: ПРОПАЛО
Я хочу, чтобы в стеке было только по 1 копии каждого, поэтому это будет: Act1-> GONE
Возможно?
Ответ №1:
При вызове startActivity()
добавьте FLAG_ACTIVITY_REORDER_TO_FRONT
в Intent
. Это приведет к повторному использованию вашего существующего экземпляра activity.
Комментарии:
1. Спасибо! Но у меня возникла другая проблема.. Я вызываю activity с помощью putExtra, и эти данные теряются, когда я добавляю setFlags в intent. Как мне использовать оба? РЕДАКТИРОВАТЬ: На самом деле, я знаю почему, это одно и то же действие с разными входными данными. Я хочу, чтобы действие перезапустилось и оставалось на вершине. Прямо сейчас он просто извлекает это действие и переупорядочивает его в начало, но я не могу передать параметры для обновления
2. @katit: Для этого вам может потребоваться переключиться на
FLAG_ACTIVITY_CLEAR_TOP|FLAG_ACTIVITY_SINGLE_TOP
вместоFLAG_ACTIVITY_REORDER_TO_FRONT
.
Ответ №2:
взгляните на это:
http://developer.android.com/guide/topics/manifest/activity-element.html#lmode
Я думаю, вы можете захотеть
android: launchMode =»singleTop»
в манифесте вашего действия, если я правильно понимаю ваши потребности