Проблемы со стеком активности в Android - PullRequest
0 голосов
/ 01 апреля 2012

Я новичок в разработке для Android, и я разработал небольшое приложение, но у меня возникли проблемы со связыванием различных действий (т. Е. Переход между действиями нужным способом). Мне жаль задавать эти вопросы, но я пробовал разные решения от Google, но ни одно из них не сработало для меня, и я до сих пор не ясен с этими концепциями.

Plz help

У меня есть несколько вопросов:

  1. Как удалить активность вверху стека?

  2. Как удалить все действия из стека действий?

  3. Намерение (A.this, B.class) с (Intent.FLAG_ACTIVITY_NO_HISTORY) не добавит действие B в стек, но что, если я хочу добавить действие A в стек?

  4. Есть ли способ, с помощью которого я могу визуализировать содержимое стека активности (что поможет мне установить соответствующие флаги при вызове действий)?

  5. У меня есть операция A (с 3 кнопками), из которой я вызываю операцию B, где я выполняю некоторые операции с пользовательским вводом и хочу вернуться к операции A, но я хочу показать только 1 кнопку из те 3, как я могу это сделать? (Проблема, с которой я сталкиваюсь, состоит в том, что у действия в A есть 3 кнопки, поэтому я хочу перезапустить его, либо удалив его и сделав новое намерение, ИЛИ сделав ту же запись в стеке, чтобы начать снова, чтобы в зависимости от условий она отображала 1 кнопку)

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

Ответы [ 2 ]

5 голосов
/ 02 апреля 2012

Как удалить активность на вершине стека?

Я понятия не имею, что, по вашему мнению, «удалить» означает в отношении действий. Я понятия не имею, что вы подразумеваете под «вершиной стека» в отношении деятельности.

Предполагая, что вы имеете в виду "как уничтожить активность на переднем плане", действие может вызвать finish() для себя.

Как удалить все действия из стека действий?

Вы не. Вы можете позвонить startActivity() с Intent.FLAG_ACTIVITY_CLEAR_TOP и Intent.FLAG_ACTIVITY_SINGLE_TOP, чтобы уничтожить все текущие действия в стеке, оставив вам тот, который вы сейчас запускаете.

Намерение (A.this, B.class) с (Intent.FLAG_ACTIVITY_NO_HISTORY) не добавит действие B в стек, но что, если я хочу добавить действие A в стек?

Звоните startActivity() для А.

Есть ли способ, с помощью которого я могу визуализировать содержимое стека активности (что поможет мне установить соответствующие флаги при вызове действий)?

Вы можете просеять adb shell dumpsys, чтобы получить такую ​​информацию, но она не особенно дружелюбна.

Ваш последний вопрос мне непонятен, извините.

0 голосов
/ 03 апреля 2012

Ответ за последний квартал: Используйте startActivityForResult, чтобы запустить Activity B, и переопределить onActivityForResult в Activity A. onActivityResult будет вызываться, когда Activity B будет завершена / завершена. Вы можете установить видимость кнопок в GONE / INVISIBLE внутри onActivityResult.

...