#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 это уже опубликовано выше в самом вопросе ‘