История Android только для 1 действия

#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»

в манифесте вашего действия, если я правильно понимаю ваши потребности