2015-12-24 4 views
1

У меня есть 3 Activities, Activity A, B, & C. От ActivityA, я нажимаю на button для запуска ActivityB и в пределах ActivityB Я нажимаю еще button для запуска ActivityC.Android - Как перемещаться по стеку/задачам деятельности

Я пытаюсь найти правильный способ вернуться к ActivityA с ActivityC с дополнительным возвратом в ActivityB от ActivityC.

Если я в ActivityC и нажмите дом button Я хочу, чтобы вернуться к ActivityB, но если я нажимаю мой «спасти» button Я хочу закончить ActivityC & ActivityB и показать ActivityA.

Как это сделать?

Ответ Edit: Как кришна Мурали предложено, в своем ответе, он был около 99% пути там. Эти два флага сделали трюк Intent.FLAG_ACTIVITY_CLEAR_TOP & Intent.FLAG_ACTIVITY_SINGLE_TOP

+0

Используйте 'startActivityForResult()' и передайте значения родительской активности во время вызова 'finsh()' и решите, должен ли предыдущий родитель быть закончен или нет на основе щелчка кнопки. [Вот пример] (http://stackoverflow.com/a/12293980/4596556) –

+0

Думаю, он не стремился передать результат. Он хочет вернуться к ActivityA по нажатию кнопки в ActivityC. @ MadhukarHebbar –

+0

@krishnamurali У него есть два случая (Save and Home). Один для Activity A и один для Activity B. –

ответ

2

Нажмите кнопку, чтобы вернуться к ActivityA с ActivityC. Используйте:

Intent intent = new Intent(getApplicationContext(), ActivityA.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

Это очистит все действия на вершине ActivityA.

+0

Спасибо за предложение, похоже, работает. Похоже, что он запускает новый экземпляр ActivityA, не возвращаясь, как если бы я вызвал финиш() в ActivityB. –

+0

Вот как это работает, насколько я знаю. @ Hitch –

+0

Вы можете использовать launcherMode = singleTask или singleTop в вашем манифесте – k0sh

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