Android глубокие ссылки и режим запуска - PullRequest
0 голосов
/ 11 января 2020

У меня есть одно приложение активности с нижней навигацией, к которому я добавил глубокие ссылки. Глубокая ссылка на фрагмент внутри navgraph. Я передаю некоторые данные по этой ссылке, которая затем обрабатывается дальше.

Когда я открываю диплинк из WhatsApp и приложение закрывается, ссылка работает нормально. Перенаправляет на правильный фрагмент.

Я добавил nav-граф в MainActivity

<nav-graph android:value="@navigation/fragment"/>

Но когда приложение открыто и я нажимаю на ссылку в WhatsApp, приложение выходит на передний план, но Deeplink не т работа. Даже правильный фрагмент не будет загружен.

Я попытался изменить android: launchMode = "singleTask" на "singleTop", но затем приложение открывается внутри WhatsApp.

Есть предложения по этому поводу?

1 Ответ

0 голосов
/ 11 января 2020

Я нашел решение. Мой режим запуска по-прежнему однозадачный.

Итак, в моей основной деятельности я перезаписал следующее:

@Override
protected void onNewIntent(Intent intent) {
    setIntent( intent );
    super.onNewIntent( intent );
}

Затем я могу позвонить getIntent() в onResume() и играть, выполняя оставшуюся часть задачи.

onNewIntent - это только точка входа в приложение, когда оно находится в фоновом режиме. Таким образом, все обработки и изменения пользовательского интерфейса должны обрабатываться с помощью onResume.

Пожалуйста, не стесняйтесь поправлять меня, если я ошибаюсь или у вас есть лучший метод.

...