0、相关文章
1、简单说一下使用ARouter跳转到一个Activity的流程
我们先写一个测试项目,如下:
有三个module:app、base、module-test1,其中app依赖base和test1,test1也依赖base。
base下面写了一个BaseConstant类,用于存放公共字段
public class BaseConstant {
public static final String AROUTER_PATH_MODULE1_TEST1 = "/module1/Module1Test1Activity";
public static final String AROUTER_PATH_MODULE1_TEST2 = "/module1/Module1Test2Activity";
public static final String AROUTER_PATH_MODULE1_WEBVIEW = "/module1/TestWebViewActivity";
public static final String AROUTER_PATH_MODULE1_TEST_INTERCEPTOR = "/module1/TestInterceptorActivity";
}
test1的Module1Test1Activity.java
@Route(path = BaseConstant.AROUTER_PATH_MODULE1_TEST1)
public class Module1Test1Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_module1_test1);
}
}
app的MainActivity.java(只有一个跳转,其他略过)
//不携带参数跳转
findViewById(R.id.btn1).setOnClickListener(v -> {
// 1. 应用内简单的跳转
ARouter.getInstance()
.build(BaseConstant.AROUTER_PATH_MODULE1_TEST1)
.navigation();
});
1.1、运行项目
项目成功运行后,发现项目自动生成了一些代码:
自动生成的代码:
public class ARouter$$Group$$module1 implements IRouteGroup {
@Override
public void loadInto(Map<String, RouteMeta> atlas) {
atlas.put("/module1/Module1Test1Activity", RouteMeta.build(RouteType.ACTIVITY, Module1Test1Activity.class,
"/module1/module1test1activity", "module1", null, -1, -2147483648));
}
}
public class ARouter$$Providers$$moduletest1 implements IProviderGroup {
@Override
public void loadInto(Ma