Предотвратить воссоздание активности, начав с намерения и передав ему Ури - PullRequest
0 голосов
/ 02 августа 2020

Я использую подход единого действия в сочетании с библиотекой компонентов навигации. У меня есть виджет, который запускает основное действие, например, с 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, действие не будет воссоздано.

...