Я использую пользовательское приложение Launcher с виджетами, которые используются для запуска (и предоставления обновлений статуса) приложения.
Приложение состоит из нескольких операций - назовем их A, B и Cдля простоты.
A - запущенная активность.Пользователь переходит от A к B, а затем к C (ни в каком другом порядке).
В любое время пользователь может нажать кнопку «Домой» на пульте дистанционного управления и вернуться в приложение запуска.
Если пользователь затем нажимает кнопку «Назад» на пульте дистанционного управления, он всегда возвращается к тому действию, которое он в последний раз использовал (A, B или C).
Однако, если он нажимает наwidget (а не нажатие назад) Активность, которая выводится на передний план, кажется несовместимой!
Итак, вот пример того, что происходит
Из (пользовательского) средства запуска, используйте widget для запуска приложения
Появляется действие A
Пользователь нажимает кнопку, запускающую действие B
Появляется действие B
Пользователь нажимает «Домой»
Появляется средство запуска
Из (настраиваемого) средства запуска используйте виджет для запуска приложения
Упражнение A появляется НЕ B
Иногда я получаю Упражнение B вместо Упражнения A - но я не уверен, при каких обстоятельствах.Я хочу, чтобы отображало Активность наверху стека, а никогда - любую другую Активность (Активность B в приведенном выше примере).
У меня естьПрочитайте документацию Google о флагах активности («одиночная задача», «один экземпляр» и т. д.), но, похоже, ничего не помогло решить мою проблему.
В моем случае, Действия A, B, C имеет смысл только при запуске в таком порядке - и никогда не имеет смысла видеть предыдущее действие, если вы явно не вернетесь к нему.
Я не уверен, что проблема в том, как виджетзапускает приложение или есть что-то, что мне нужно указать в моем манифесте или что-то еще.
Есть идеи?
Спасибо,
Дан