У меня есть активность по списку товаров, которая также вызывается из списка категорий * из поиска.
Когда пользователь выполняет поиск несколько раз, а затем нажимает кнопку «Назад», он должен отменить все поиски (= нормальное поведение Android).
Я пытаюсь добиться того, чтобы поиски не помещались в стек Acticity, поэтому ответный удар всегда приведет его к последнему действию перед его поиском 1-го.
Пример потока операций:
- Приборная панель
- категории
- список товаров (из категорий)
- (поиск)
- список товаров (из поиска)
- (возможно, больше поисков)
- список товаров (из поиска)
...
Я попробовал Android: launchMode = "singleTop", как описано здесь:
http://developer.android.com/guide/topics/search/search-dialog.html#LifeCycle
Работает, но, поскольку я повторно использую ту же активность в списке товаров для навигации и поиска по категориям, это происходит:
Без 'singleTop' пользователь должен отменить все действия, связанные с 'productlist (from search)'
С 'singleTop' пользователь заканчивается (конечно) на "категориях" деятельности, но должен на "productlist (из категорий)"
Поскольку SearchManager запускает намерение, я не могу использовать флаги намерения.
Есть ли шанс сообщить уже запущенной активности (если она вызывается поиском), чтобы удалить себя из стека активности?
Спасибо!