У меня возникают трудности с отправкой аргумента через PendingIntent
уведомления с использованием NavDeepLinkBuilder
.Я могу получить пункт назначения Activity
для запуска, щелкнув уведомление, но Activity
Intent
не содержит значение аргумента, которое я передал через NavDeepLinkBuilder
.Вместо этого Intent
возвращает defaultValue
, который я установил на графике навигации - "noJobId".
Создание уведомления :
val notification =
NotificationCompat.Builder(context, context.getString(R.string.notification_channel_id_new_job))
...
.setContentIntent(
NavDeepLinkBuilder(context)
.setComponentName(NewJobDetailsActivity::class.java)
.setGraph(R.navigation.main_graph)
.setDestination(R.id.newJobDetailsActivity)
.setArguments(
NewJobDetailsActivityArgs.Builder()
.setJobId(event.jobId)
.build()
.toBundle()
)
.createPendingIntent()
)
.build()
notificationManager.notify(notificationId, notification)
context
в уведомлении используется FirebaseMessagingService
.
Пункт назначения Activity
onCreate()
:
val jobId: String = NewJobDetailsActivityArgs.fromBundle(intent?.extras).jobId
main_graph.xml
График навигации :
<navigation
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_graph"
app:startDestination="@id/jobsFragment">
<fragment
android:id="@+id/jobsFragment"
android:name=".ui.jobs.JobsFragment"
android:label="JobsFragment">
<action
android:id="@+id/action_jobsFragment_to_newJobDetailsActivity"
app:destination="@id/newJobDetailsActivity" />
</fragment>
<fragment
android:id="@+id/historyFragment"
android:name=".ui.history.HistoryFragment"
android:label="HistoryFragment" />
<fragment
android:id="@+id/profileFragment"
android:name=".ui.profile.ProfileFragment"
android:label="ProfileFragment" />
<activity
android:id="@+id/newJobDetailsActivity"
android:name=".ui.job.NewJobDetailsActivity"
android:label="activity_new_job_details"
tools:layout="@layout/activity_new_job_details">
<argument
android:name="jobId"
android:defaultValue="noJobId" // just for testing
app:argType="string" />
</activity>
</navigation>
Кто-нибудь еще сталкивался с этой проблемой?Я чувствую, что это ошибка в компоненте навигации, но я еще не уверен на 100%.Любопытно, что здесь чего-то не хватает.
Зависимости : android.arch.navigation: navigation-фрагмент-ktx: 1.0.0-alpha06, android.arch.navigation: navigation-ui-ktx: 1.0.0-alpha06
Плагин : androidx.navigation.safeargs