startActivityForResult с одиночным режимом запуска не работает должным образом на Android 9 - PullRequest
2 голосов
/ 14 марта 2019

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

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

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

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

С этой проблемой я столкнулся в последней версии 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?Что я пропустил?

...