jakub
jakub

Reputation: 3864

Deeplink isn't correctly redirect if the app is already opened

I'm using Jetpack Navigation for deeplinks. I've added android:launchMode="singleTask" to my Activity. Deeplink is redirected correctly if the app wasn't opened before. However, if the app exists in memory, the app is coming to the foreground but deeplink isn't opened correctly.

My device is Pixel 2 with Android 10. I see that onCreate is called only the first time I'm opening app. However, onNewIntent is called every time I'm clicking deeplink.

Is it a bug in Jetpack Navigation or I forgot about something when setting it up?

Upvotes: 9

Views: 6857

Answers (1)

ianhanniballake
ianhanniballake

Reputation: 200120

As per the handleDeepLink() documentation:

This is called automatically for you the first time you set the graph if you've passed in an Activity as the context when constructing this NavController, but should be manually called if your Activity receives new Intents in Activity.onNewIntent(Intent).

NavController doesn't override methods in your activity, so you'd need to call this manually if you insist on using android:launchMode="singleTask".

As per the Single Activity talk, you shouldn't use any launchMode flags at all - the default is actually what you want 99.9% of the time.

Upvotes: 10

Related Questions