ARouter基础使用(一)

一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦
1.新建一个Android项目 "ARouterDemo"
2.添加依赖和配置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

android {

    defaultConfig {

        ...

        javaCompileOptions {

            annotationProcessorOptions {

                arguments = [AROUTER_MODULE_NAME: project.getName()]

            }

        }

    }

}

 

dependencies {

    // 替换成最新版本, 需要注意的是api

    // 要与compiler匹配使用,均使用最新版可以保证兼容

    compile 'com.alibaba:arouter-api:x.x.x'

    annotationProcessor 'com.alibaba:arouter-compiler:x.x.x'

    ...

}

// 旧版本gradle插件(< 2.2),可以使用apt插件,配置方法见文末'其他#4'

// Kotlin配置参考文末'其他#5'

 3.添加注解

1

2

3

4

5

6

// 在支持路由的页面上添加注解(必选)

// 这里的路径需要注意的是至少需要有两级,/xx/xx

@Route(path = "/test/activity")

public class YourActivity extend Activity {

    ...

}

 4.在Application 中初始化sdk

if (isDebug()) {           // 这两行必须写在init之前,否则这些配置在init过程中将无效
    ARouter.openLog();     // 打印日志
    ARouter.openDebug();   // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险)
}
ARouter.init(mApplication); // 尽可能早,推荐在Application中初始化

5.发起路由操作

1

2

3

4

5

6

7

8

9

// 1. 应用内简单的跳转(通过URL跳转在'进阶用法'中)

ARouter.getInstance().build("/test/activity").navigation();

 

// 2. 跳转并携带参数

ARouter.getInstance().build("/test/1")

            .withLong("key1", 666L)

            .withString("key3""888")

            .withObject("key4"new Test("Jack""Rose"))

            .navigation();

 6.如果发起startActivityForResult() 传入context和requestCode

执行setResult(12) 

转载于:https://www.cnblogs.com/jiayonghua/p/10767571.html