ARouter的使用
2019-04-01 本文已影响0人
哎一不小心就
一、路由简介
ARouter是阿里巴巴的开源路由,主要作用是为了解耦,同时为不同Module之间页面的开启和传值提供了支持。
二、怎样使用
添加依赖
在每个Module的app下的defaultConfig下添加如下代码
如果有多个Module,在每个依赖下面添加如下依赖
1、首先初始化ARouter,尽早的初始化ARouter,并且开启调试模式和日志要放在init()之前,否则无效,正式上线的时候关闭调试模式,不打印日志。
初始化ARouter2、在支持路由的页面添加注解,并且路径至少要两级,/xx/xx
第一级为分组,第二级为类的标识,我们也可以自定义分组
3、在其他页面打开支持路由的页面
方式一: 此方法没有自定义分组,没有传值
方式二:自定义分组,没有传值,组名在build的第二个参数指定
方式三:navigation(),里面可以添加路由的监听
方式四:navigation()里面添加requestCode,替代startActivityForResult()
在开启的页面
方式五:在路由的同时传值
ARouter传递参数,支持八大基本数据类型、数组、集合等,如果传JavaBean,则需要实现Serializable或者Parcelable,如果传递List集合泛型为JavaBean,则JavaBean只能实现Parcelable。
取值有两种方式
1、通过注入的形式首先要注入当前的类
然后通过@Autowired标注,或者@Autowired(name = "key")
2、通过getIntent().getxxExtra()
方式六:Fragment的路由
直接获取实例
方式七:接口的路由
1.写个接口集成IProvider
2.在具体子类添加注解
使用:
接口的路由,我试过把Activity作为具体的实现类,然后不管采用哪种方式获取IService都会报错,暂时没找到具体原因,因为时间紧急没来得及看源码,有了解的小伙伴可以讲解一下为什么,三克油。