Проблема стека истории активности Android

1

В моем приложении у меня проблема с стеком истории операций. Действительно, рассмотрим, что у меня есть 5 видов деятельности:

  • Splashscreen
  • SignUp
  • для входа в аккаунт
  • ForgottenPassword
  • Главная

Я бы увидел:

  • Первый запуск (пользователь не зарегистрирован): возможно 3 разных каркаса
    • Splashscreen → SignUp → Главная
    • Splashscreen → SignUp (уже участник) → SignIn (действительный журнал) → Главная
    • Splashscreen → SignUp (уже участник) → SignIn → ForgottenPassword (логин/пароль получают по почте) → SignIn (действительный журнал) → Главная
  • Другой запуск (зарегистрированный пользователем): Splashscreen → Главная (автоматический журнал)

Проблема заключается в следующем: Мне бы хотелось выполнить 2 задания: один с Splashscreen, SignUp, SignIn и ForgottenPassword, а другой с Splashscreen и Home. Зачем? Потому что обратно из дома следует закрыть приложение, но вернуться к предыдущей активности (SignUp или SignIn в соответствии с каркасом). Определите активность с помощью history=true в SignUp и SignIn, но не разрешайте забыть пароль → SignIn и SignIn → SignUp: (

Спасибо за помощь

  • 2
    Я следил за тобой до проблемы. Когда ты хочешь, чтобы это случилось, когда ты возвращаешься из дома? Закрыть приложение? Или вернуться к последнему экрану? По умолчанию он должен вернуться к последнему экрану. Не могли бы вы лучше объяснить, что именно вы хотите, и что происходит сейчас?
  • 0
    Из дома, обратное действие должно всегда закрывать приложение
Теги:
android-activity
task
history

1 ответ

3

Есть несколько способов сделать это, одним способом:

Всякий раз, когда вы запускаете операцию Home, используйте startActivityForResult. Когда домашняя активность завершается (пользователь удаляется), предыдущая активность будет уведомлена. Если вы не хотите показывать эту активность, немедленно завершите эту операцию. Вы можете использовать код запроса или результата, чтобы помочь вам определить, хотите ли вы снова показывать активность.

Я верю, что вы также можете сделать что-то вроде этого:

startActivity(homeActivityIntent);
finish();

чтобы удалить предыдущую активность из стека при запуске домашней операции.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню