WedX - журнал о программировании и компьютерных науках

Как поддерживается стек активности для приложения Android?

Я новичок в программировании для Android.

Я хочу понять, как поддерживается стек активности для конкретного приложения Android и как он меняется в зависимости от навигации пользователя.

Например, если есть несколько действий, то как ведет себя стек действий, когда пользователь нажимает кнопку «Назад» или кнопку «Домой» или запускает новое действие?

Я пытался найти подходящий пост, где можно получить всю информацию, но ничего не нашел. Может кто-нибудь предложить мне несколько ссылок/сообщений, где я могу узнать об этом?

Спасибо!

Отредактировано:

Ссылки/Сообщения, с которыми я столкнулся до сих пор:

  1. onSaveInstanceState не сохраняет мои значения ( onCreate input Bundle всегда имеет значение null )

  2. Сохранение состояния активности Android с помощью сохранения состояния экземпляра

  3. Android: режим запуска "один экземпляр"


Ответы:


1

Вы имеете в виду действия и задний стек?

Вот ссылка: https://developer.android.com/guide/components/tasks-and-back-stack.html

Задача — это набор действий, с которыми взаимодействуют пользователи при выполнении определенной работы. Действия расположены в стеке (задний стек) в том порядке, в котором открывается каждое действие.

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

Когда текущая активность запускает другую, новая активность помещается на вершину стека и получает фокус. Предыдущая активность остается в стеке, но останавливается. Когда действие останавливается, система сохраняет текущее состояние пользовательского интерфейса. Когда пользователь нажимает кнопку «Назад», текущая активность выталкивается из верхней части стека (активность уничтожается), а предыдущая активность возобновляется (восстанавливается предыдущее состояние ее пользовательского интерфейса). Действия в стеке никогда не переупорядочиваются, а только помещаются в стек и извлекаются из стека — помещаются в стек, когда оно запускается текущим действием, и извлекаются, когда пользователь покидает его с помощью кнопки «Назад». Таким образом, задний стек работает как объектная структура «последний пришел, первый вышел». Рисунок 1 визуализирует это поведение с помощью временной шкалы, показывающей прогресс между действиями вместе с текущим бэкстеком в каждый момент времени.

введите здесь описание изображения

05.11.2015
  • jMike и @Nippey -- Спасибо за разъяснение! Это почти ответ на мой вопрос. :) Просто добавлю, что происходит, когда пользователь нажимает кнопку «Домой»? 06.11.2015
  • дополнение: Просто добавьте, что происходит, когда пользователь нажимает кнопку «Домой»? Когда вы нажимаете кнопку «Домой», сначала вызывается onPause, а затем onStop. дополнение 2: я имел в виду, что происходит с Back Stack? Задний стек для задачи остается нетронутым — задача просто потеряла фокус, пока выполняется другая задача. 06.11.2015
  • Я имел в виду, что происходит с Back Stack? :) 06.11.2015
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]