使用导航组件的深层链接时如何重新创建 singleTop 行为?

Zie*_*iem 14 android-deep-link android-jetpack-navigation

使用导航组件的深层链接时如何重新创建 singleTop 行为?

我正在使用 Jetpack Navigation,目前正在尝试实现通知点击。其中一个片段用于播放音乐。当您将应用程序设为后台时,会显示一条通知并继续播放音乐。当我点击通知时,我想回到带有回放的片段。我想模仿singleTop行为。

为了处理通知点击,我使用了一个显式的深层链接(PendingIntent带导航图):

val pendingIntent = NavDeepLinkBuilder(context)
    .setGraph(R.navigation.nav_graph)
    .setDestination(R.id.music)
    .setArguments(...)
    .createPendingIntent()
Run Code Online (Sandbox Code Playgroud)

不幸的是,它清除了任务返回堆栈并将其替换为深层链接目标。我怎样才能防止这种行为?我知道有,NavOptions#shouldLaunchSingleTop但我认为无法将它与PendingIntentand一起使用NavDeepLinkBuilder。是否可以使用 NavOptions 启动深层链接?