android - Android - 怎么知道,在宿主activity中,导航已经结束
问题描述
我正在为我的应用程序考虑一个新的架构,并且我正在为一个已经存在的应用程序实现一些新的东西。
所以,基本上我的新模块有一个使用导航组件的流程,当它结束时,我的应用程序需要知道调用旧流程。
我怎么知道?主机活动可以知道导航何时结束吗?
解决方案
您的宿主活动可以调用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
}
}
});
推荐阅读
- python - 如何使用 Boto3 Python 在 S3 中创建 zipfile?
- python - 有没有更好的方法在 python 中生成等距地图网格?
- html - 我应该怎么做才能让我的盒子水平对齐?
- javascript - 我应该在 jQuerys 文档中使用 onclick 还是 click 方法准备好了吗?
- amazon-web-services - ecs-cli 不适用于 MFA - AssumeRoleTokenProviderNotSetError
- vue.js - [Vue 警告]:v-on 处理程序中的错误:“ReferenceError:cartItems 未定义”
- reactjs - How to access client folder environment variable from server in heroku and only use one .env in root folder
- javascript - 如何在新的构建反应项目后删除缓存
- redirect - Http tp Https URL re-write rule for app.hostname.com in IIS
- python - 如何在子进程中使用 tr 命令