Skip to content
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();

路由的一些基本概念

本框架设计了 hostpath,分别表示哪一个模块和对应模块中的路径 在使用的时候必须填写有效的 hostpath才能路由成功.

这两者是概念上是等同的

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,所以省略不写会默认使用当前 modulebuild.gradle 中配置的 host

路由常见的问题

路由常见问题

服务发现常见问题

服务发现的概念

服务发现说直白点就是 接口 + 实现类 只不过接口是对外公开,每一个地方都可以引用,实现类是隐藏于某一个业务 Module 中 专业名词 SPI(Service Provider Interface)

Idea Plugin 的问题

代码使用处不出现跳转的图标

有些朋友反馈 Idea plugin 在跳转代码处没有出现左边的图标,而 Activity 上的标记是有的 遇到这个问题的朋友请重装一下插件即可解决问题

当目标 Activity 省略不写 host 的时候,插件无法跳转到

在目标界面的模块的清单文件中,在 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>

其他

未完待续…..

Clone this wiki locally