首页 > 解决方案 > Android - 怎么知道,在宿主activity中,导航已经结束

问题描述

我正在为我的应用程序考虑一个新的架构,并且我正在为一个已经存在的应用程序实现一些新的东西。

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

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

标签: androidandroid-architecture-navigation

解决方案


您的宿主活动可以调用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
       } 
   }
});

推荐阅读