Android 使用ARouter 跳转

一、页面路由基本介绍

1.什么是页面路由
映射页面跳转关系,包含跳转相关的URL跳转及值传递、拦截器等功能。

2.为什么要使用页面路由
在原始android开发中,当我们需要进行页面跳转时,正常写法如下:

Intent intent = new Intent(mContext, XXActivity.class);
intent.putExtra("key","value");
startActivity(intent);

Intent intent = new Intent(mContext, XXActivity.class);
intent.putExtra("key","value");
startActivityForResult(intent, 100);

但是上述写法容易出现以下问题:
1、多人协同开发的时候,大家都去AndroidManifest.xml中定义各种IntentFilter,使用隐式Intent,最终发现AndroidManifest.xml中充斥着各种Schame,各种Path,需要经常解决Path重叠覆盖、过多的Activity被导出,引发安全风险等问题
2、跳转过程中无法插手:直接通过Intent的方式跳转,跳转过程开发者无法干预,一些面向切面的事情难以实施,比方说登录、埋点这种非常通用的逻辑,在每个子页面中判断又很不合理,毕竟activity已经实例化了
3、跨模块无法显式依赖:在App小有规模的时候,我们会对App做水平拆分,按照业务拆分成多个子模块,之间完全解耦,通过打包流程控制App功能,这样方便应对大团队多人协作,互相逻辑不干扰,这时候只能依赖隐式Intent跳转,书写麻烦,成功与否难以控制

二、页面路由框架ARouter的实现

引入流程
步骤一、在MyApplication初始化路由 (容易忽略)

/**
     * 初始化路由
     */
    private void initRouter() {
        Configuration.Builder builder = new Configuration.Builder();
        builder.registerModules("app", "ModuleMain", "ModuleLogin");//需要使用路由的模块
        Router.initialize(builder.build());
    }

步骤二、在需要使用路由的模块的build文件添加依赖
在这里插入图片描述

 javaCompileOptions {
            annotationProcessorOptions {
                arguments = ["moduleName": project.name]
            }
        }

在这里插入图片描述

 api 'com.chenenyu.router:router:1.3.2'
 annotationProcessor 'com.chenenyu.router:compiler:1.3.2'

步骤三、用Router进行跳转

 Router.build("com.lyw.modulelogin.login.LoginActivity").go(this);
 SplashActivity.this.finish();

在跳转目地activity也要写上路径
在这里插入图片描述
这只是实现Router引入的步骤,还有很多其他功能,以后再慢慢完善

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值