Android-如何知道,在主机活动中,导航已经结束

Android-如何知道,在主机活动中,导航已经结束,android,android-architecture-navigation,Android,Android Architecture Navigation,我正在为我的应用程序考虑一种新的体系结构 我正在为一个已经存在的应用程序实现一些新功能 所以,基本上我的新模块有一个流程,使用导航组件,当这结束时,我的应用程序需要知道调用旧流程 我怎么知道? 主机活动是否可以知道导航何时结束?您的主机活动可以调用addOnDestinationChangedListener,以便知道导航流中的当前片段。如果我的理解正确,您可以在宿主活动的onCreate中执行以下操作: navController.addOnDestinationChangedListener

我正在为我的应用程序考虑一种新的体系结构 我正在为一个已经存在的应用程序实现一些新功能

所以,基本上我的新模块有一个流程,使用导航组件,当这结束时,我的应用程序需要知道调用旧流程

我怎么知道?
主机活动是否可以知道导航何时结束?

您的主机活动可以调用
addOnDestinationChangedListener
,以便知道导航流中的当前片段。如果我的理解正确,您可以在宿主活动的onCreate中执行以下操作:

navController.addOnDestinationChangedListener(new NavController.OnDestinationChangedListener() {
   @Override
   public void onDestinationChanged(@NonNull NavController controller,
           @NonNull NavDestination destination, @Nullable Bundle arguments) {
       // if you have reached the end of your navigation flow, do something
       if(destination.getId() == R.id.end_dest) {
           // add code calling your old flow here
       } 
   }
});