Как вернуться к 3-й предыдущей активности в Android? - PullRequest
2 голосов
/ 26 августа 2011

В моем приложении для Android я сначала ищу кафе. Когда пользователь выберет одно кафе, в следующем действии будет отображаться более подробная информация о нем. Затем пользователь может просмотреть карту кафе. Когда пользователь нажимает кнопку Готово, мне нужно перенаправить пользователя к результату поиска, который был первым действием. Так как я могу это сделать? Вызов метода finish () закроет только текущее действие.

Заранее спасибо!

Ответы [ 5 ]

11 голосов
/ 26 августа 2011

вы можете использовать финиш () в каждом действии по мере продолжения, или вы можете начать свое первое действие с этим флагом FLAG_ACTIVITY_CLEAR_TOP, и оно очистит все основные действия вашего первого действия и приведет к тому, что ваше первое действие окажется сверху.Используйте как это:

Intent intent = new Intent(this, yourFirstActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
2 голосов
/ 02 декабря 2011
//DOES NOT FINISH ALL ACTIVITY 

 Intent intent=new Intent();
 intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);


//FINISH ALL ACTIVITY WHICH IS IN STACK ABOVE TARGET ACTIVITY

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
2 голосов
/ 26 августа 2011

Запустите это действие с этим флагом Intent.FLAG_ACTIVITY_CLEAR_TOP

Ссылка: Документация Android

0 голосов
/ 26 августа 2011

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

Вместо этого действие B должно использовать startActivityForResult (... C ...) И то же действие Bследует проверить результат с помощью onActivityResult () и завершить, если в операции C была нажата кнопка DONE. Но если в операции C была нажата только кнопка возврата, операция B будет отображаться нормально.

0 голосов
/ 26 августа 2011
   Intent.FLAG_ACTIVITY_CLEAR_TOP 

очищает все, кроме вашего первого действия, это должно работать довольно хорошо.

Согласно форуму разработчиков приложений для Android вы должны инициировать это действие следующим образом: -

 startActivity(intent);
...