-
Notifications
You must be signed in to change notification settings - Fork 208
常见问题
xiaojinzi123 edited this page Oct 9, 2019
·
4 revisions
这种是错误方式
Router.with()
.host("app")
.path("main")
.navigate();
finish();
正确结束界面
Router.with()
.host("app")
.path("main")
.afterXXXAction(() -> {
finish();
})
.navigate();
本框架设计了 host
和 path
,分别表示哪一个模块和对应模块中的路径
在使用的时候必须填写有效的 host
和 path
才能路由成功.
这两者是概念上是等同的
host
+ path
<===> 一个可路由的界面或者自定义 Intent
左边发起一个路由可以像下面一样使用.下面两种方式你喜欢哪种就用哪种
Router.with()
.hostAndPath("app/main") // 至少包含一个 '/'
.navigate();
或者
Router.with()
.host("app")
.path("main")
.navigate();
路由到达目标处,对应的需要用 @RouterAnno
注解标记 Activity
或者静态方法
@RouterAnno{
host = xxx,
path = xxx
}
host
是可以省略的,因为被标记的元素一定属于某一个 module
,所以省略不写会默认使用当前 module
的 build.gradle
中配置的 host
服务发现说直白点就是 接口 + 实现类
只不过接口是对外公开,每一个地方都可以引用,实现类是隐藏于某一个业务 Module
中
专业名词 SPI(Service Provider Interface)
有些朋友反馈 Idea plugin
在跳转代码处没有出现左边的图标,而 Activity
上的标记是有的
遇到这个问题的朋友请重装一下插件即可解决问题
在目标界面的模块的清单文件中,在 Application
节点下配置一个 meta-data
, key 使用 host_
作为前缀即可, value
是你当前模块的在 build.gradle
中配置的 host
名称. 比如下面的示例代码, Idea Plugin 会自动扫描到 host_
为前缀的 meta-data
并且得到的对应的 value
值
<application>
<meta-data
android:name="host_component1"
android:value="component1" />
</application>
未完待续…..