startActivityForResult с режимом запуска singleTop не работает должным образом на Android 9

#android #android-fragments #android-activity #kotlin #android-fragmentactivity

#Android #android-фрагменты #android-активность #kotlin #android-fragmentactivity

Вопрос:

У меня есть действие и фрагмент, которые определяются с помощью навигации по jetpack.

Для одного из моих действий launchMode установлено singleTop значение в AndroidManifest.xml файл.

Когда я использую startActivity метод в моем фрагменте, он работает так, как ожидалось, без создания какого-либо нового действия, если уже есть экземпляр Activity с тем же типом в верхней части стека в вызывающей задаче.

Но если использовать startActivityForResult , то новые экземпляры Activity продолжают создаваться, даже если они уже находятся на вершине стека back.

С этой проблемой я столкнулся в последней версии Android 9. Я тестировал свой код на более старых версиях Android (4.1), и singleTop режим запуска работает так, как ожидалось.

Что интересного, если я программно установлю режим запуска с помощью этого кода:

 val intent = Intent(context, T::class.java)
intent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP
  

singleTop режим запуска с startActivityForResult начинает работать должным образом на Android 9 без каких-либо проблем.

Тогда почему это не работает с AndroidManifest.xml ? Что я пропустил?

Комментарии:

1. Я также сталкиваюсь с той же проблемой. Пожалуйста, напишите, если вы найдете какое-либо решение для этого.

2. На данный момент я просто использую программный подход

3. Можете ли вы опубликовать свой ответ. так что я также получу некоторое представление.

4. @raj это уже опубликовано выше в самом вопросе ‘