Вызов метода onSearchRequested() в той же операции, которая обрабатывает поисковые запросы, вызывает дублирование в стеке операций

У меня есть активность, которая обрабатывает поисковые запросы с помощью SearchManager, и она работает просто отлично. Давайте назовем это действие MySearchActivity.java. Проблема в том, что в этом упражнении у меня есть кнопка, которая вызывает диалог запроса поиска с вызовом onSearchRequested().

Если MySearchActivity.java является текущей задачей в стеке действий, и пользователь нажимает на значок в этом действии, который вызывает onSearchRequested(), это действие перезапускается поверх самого себя. Таким образом, в стеке действий у меня есть два одинаковых действия друг над другом.

Я не хочу использовать android:noHistory в манифесте для этого действия и не могу найти другие подходящие флаги для того, что я хотел бы выполнить.

Я хотел бы, чтобы, если пользователь коснулся значка в MySearchActivity.java, который вызывает вызов onSearchRequested(), чтобы действие не дублировалось в стеке.

Я знаю, что, возможно, что-то упускаю из виду или делаю это более сложным, чем на самом деле.... какие-нибудь идеи?

1 ответ

Решение

Для решения вы, вероятно, должны установить режим запуска "singleTop" для активности (например, android:launchMode="singleTop"). Вот дальнейшее объяснение @ документации. Удачи!

Другие вопросы по тегам