Проблема с кнопкой возврата Android - PullRequest
0 голосов
/ 07 июля 2011

Скажем, у меня есть 3 действия в моем приложении: A, B и C. Поток через приложение: A -> B -> C.

Находясь в точке C, нажатие кнопки возврата переводит пользователя в B. Если пользователь нажимает кнопку возврата в другой раз, когда попал в A, и, наконец, если он нажимает ее еще раз, он выходит из приложения.

Цель: когда пользователь нажимает кнопку «Назад» на C, он должен перейти к A и , а не B, и, если он нажмет на нее в другой раз, он выйдет из приложения.

Проблема: при переопределении кнопки «Назад» в Занятии C для запуска Занятия A все выглядит нормально. Однако, если пользователь снова нажимает кнопку «Назад», он возвращается к действию С. И поэтому нажатие кнопки «назад» просто переключает между действием А и действием С.

Полагаю, стек Activity выглядит следующим образом:

  • Открыть приложение: A
  • Перейти к B: A, B
  • Перейти к C: A, B, C
  • Нажмите назад: A, B, C, A
  • Нажмите назад: A, B, C
  • Нажмите назад: A, B, C, A
  • Нажмите назад: A, B, C
  • Нажмите назад: A, B, C, A
  • Нажмите назад: A, B, C
  • Нажмите назад: A, B, C, A
  • ... и т.д.

Так что, похоже, ошибка в том, чтобы запустить новую активность, когда нажата кнопка «Назад» на C? Во всяком случае, я мог бы дать совет о том, как реализовать это поведение.

Спасибо, Jack

Ответы [ 2 ]

5 голосов
/ 07 июля 2011

Вы можете добавить finish() в методе onStop() действия B.

Таким образом, когда действие B больше не будет видно, оно будет уничтожено и удалено из стека.

  • Открыть приложение: A
  • Перейти к B: A, B
  • Перейти к C: A, C
  • Нажмите назад: A
  • Нажмите назад: выход
2 голосов
/ 07 июля 2011

Когда вы переходите от Задания B к Упражнению C, сначала завершите задание B, затем переходите к заданию C.

пример: -

finish();
Intent i2 = new Intent(Acttivity.B, Acttivity.C);
startActivity(i2);
...