Как я очищаю все Операции от стека?

Я испытываю затруднения при совании всех операций от стека с помощью Намерения. FLAG_ACTIVITY_CLEAR_TOP и android:launchMode = "singleInstance".

В моей активности приложения A, действие запусков B (через startActivity), который в свою очередь запускает действие C (через startActivity). На действии C пользователь нажимает пункт меню для возврата к действию A. Когда они достигают действия A, я хочу только на стеке, таким образом, что, если они нажимают кнопку "Назад", они возвращаются к главному экрану (рабочий стол).

Это - код, который я в настоящее время использую, когда пользователь нажимает кнопку для возврата к A:

Intent i = new Intent(this, A.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

Все операции определяются как android:launchMode = "singleInstance" в декларации проекта.

Мой код, кажется, не работает все же. После того как я вернулся на действии, если я нажимаю кнопку "Назад", я возвращаюсь к действию C. Я неправильно понимаю, как использовать Намерение. FLAG_ACTIVITY_CLEAR_TOP?

6
задан Richard 8 July 2010 в 04:38
поделиться

2 ответа

Я всегда находил лучший способ гарантировать, что C будет удален из стека, - это вызвать finish () после startActivity, чтобы удалить C из стека.

Документация действительно читается так, как будто все будет вести себя так, как вы от них ожидали, но, похоже, этого не происходит, поэтому finish () гарантирует, что C будет удален.

2
ответ дан 17 December 2019 в 20:28
поделиться

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

Вы также можете поэкспериментировать с заданием. Я никогда не делал этого сам, но это может быть актуально и в вашем случае. См. Эту ветку: http://groups.google.com/group/android-developers/browse_frm/thread/ca3b26a14d024597/129e37375105901b

0
ответ дан 17 December 2019 в 20:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: