У меня есть действие и фрагмент, который определяется с помощью 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?Что я пропустил?