2016-11-15 1 views
0

У меня есть приложение для Android с 3 мероприятиями.Остановите пользователя от возврата к МНОГИМ предыдущих действий в Android

активность 1:

--Button Signup1

--Button Signup2

активность 2:

--Button CreateAccount

активность 3:

поток выглядит примерно так:

Activity_______UserAction____________Result

1____________click SignUp1____________Move в act2

2____________click CreateAccount_____Move в ACT3

То, что я хочу знать, когда я попал в операцию 3, как я могу предотвратить пользователю идти возвращайтесь ко всем предыдущим действиям, а не только к предыдущей предыдущей (activity2).

Я огляделся, и люди всегда рекомендули называть finish() после startActivity() в Activity2. Но это не сработает, так как андроид вернет пользователя к активности1.

В дополнение к этому в Activity1 я не хочу вызывать finish() после startActivity(), потому что я хочу, чтобы пользователи возвращались к Activity1 из Activity2 (скажем, они хотят использовать SignUp2 вместо).

Подводя итог, только когда пользователь достигает Activity3, если им не удастся вернуться к любым другим предыдущим действиям.

Как это достичь?

+0

Пожалуйста, объясняющих downvote, так что я знаю, где я испортил. –

+0

переопределить 'onBackPress' – Enzokie

+0

@ Enzokie я не думаю, что это то, что он искал, ему нужен ясный верхний флаг при запуске. вот почему я отмечен как дубликат :) –

ответ

1

Начните деятельность с этими флагами

(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK)

+0

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

4

Вы можете попробовать добавить эти флаги Activity3 намерения:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_A‌​CTIVITY_NEW_TASK); 

Это должно заставить очистить активность backstack

+0

Я просто пробовал это сам, потому что меня интересовал подход, но я все еще могу вернуться к своей активности 2, используя кнопку «Назад», несмотря на то, что вы выбрали флаги, которые были использованы для начала моей деятельности. 3. Я предполагая, что это связано с тем, что действия 1 и 2 задачи выполняются в тех случаях, когда новая задача открывается для действия 3, поэтому все равно можно вернуться к использованию кнопки «Назад» из действия 3. Любые идеи? – clownba0t

1
@Override 
public void onBackPressed() { 
    super.onBackPressed();} 

помощью этого вы можете точно сказать, андроид, что делать в случае обратного прессованного ,

Также было бы неплохо, если и может переопределить OnPause и OnDestroy метод в соответствии с вашими требованиями, пожалуйста, пройти через андроида жизненного цикла для большей наглядности на этом

1

Если вы только беспокоюсь о навигации между деятельностью с использованием затем нажмите кнопку «Назад» устройства, учитывая приведенные ограничения, вы сможете добиться того, чего хотите, переопределив метод ActivityonBackPressed(). Убедитесь, что реализация пуста, как это:

@Override public void onBackPressed() { /* Empty */ } 

Это предотвратит стандартную реализацию Андроида от onBackPressed(), который заканчивает свою деятельность, от бега.

Смежные вопросы