Я использую подход единого действия в сочетании с библиотекой компонентов навигации. У меня есть виджет, который запускает основное действие, например, с Uri, который затем обрабатывается как deeplink библиотекой навигации:
val chargeIntent = Intent().apply {
component = ComponentName("my.package", "my.package.MainActivity")
data = Uri.parse("some uri")
}
val pendingChargeIntent = PendingIntent.getActivity(context, 1, chargeIntent, PendingIntent.FLAG_UPDATE_CURRENT)
setOnClickPendingIntent(R.id.label, pendingChargeIntent)
Теперь, если пользователь нажимает эту кнопку в виджете, MainActivity
получает воссоздан, а Uri обрабатывается компонентом навигации. Но я не хочу воссоздавать свое действие, если оно уже существует (я также установил singleTask
как launchMode
для действия). Что я могу сделать, чтобы предотвратить такое поведение? Если я пропущу часть data / Uri, действие не будет воссоздано.