alibaba / ARouter

💪 A framework for assisting in the renovation of Android componentization (帮助 Android App 进行组件化改造的路由框架)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

当使用同一`Route$path` 指向多个服务实现时 , arouter-compiler根据默认排序会选择 服务A , 在Route注解中提供了priority配置 为何不基于priority优先级配置选择服务

zlrab opened this issue · comments

commented

当使用同一Route$path 指向多个服务实现时 , arouter-compiler根据默认排序会选择 服务A , 在Route注解中提供了priority配置 为何不基于priority优先级配置选择服务

@Route(path = "/main/test")
public class A{}

@Route(path = "/main/test")
public class B{}

期望配置如下时 arouter-compiler应该选择 服务B去generated code

@Route(path = "/main/test" ,priority = 1)
public class A{}

@Route(path = "/main/test" ,priority = 2)
public class B{}

应用场景:
我通过productFlavors为一个模块构建差异化变体 在main我提供了默认的服务A实现 , 它为flavor_2和flavor_3工作 , 在flavor_1中需要对服务A功能进行拓展 , 所以创建了服务B , 通过如下配置 主模块在引入的时候 保证路由规则不变的情况下 只需在编译期引入对应flavor 即可实现功能拓展

-----------------------
main
-@Route(path = "/main/test" ,priority = 1) com.zlrab.A.java
-------------------------
flavor_1
-@Route(path = "/main/test" ,priority = 2) com.zlrab.B.java extends com.zlrab.A
-------------------------
flavor_2
-------------------------
flavor_3
-------------------------
commented

遇到同样问题,priority 无效