ARouter的使用步驟(以宿主APP modulebase和moduleuser 三大模塊組成的工程為例)
第一步 因為路由跳轉是子模塊都需要用到的,所以我們在module_base模塊中引入
compile "com.alibaba:arouter-api:$rootProject.arouterVersion"
第二步 然后在各子模塊module_user的build文件中導入:
annotationProcessor "com.alibaba:arouter-compiler:rootProject.arouterProcessorVersion"
為編譯期間生成路徑映射。同時也需要在各子模塊的build中加入
defaultConfig { javaCompileOptions { annotationProcessorOptions { arguments = [moduleName: project.getName()] } } }
第三步 在宿主APP模塊中的Application中初始化ARouter:
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); initRouter(this); } public static void initRouter(Application application) { if (BuildConfig.DEBUG) { ARouter.openLog(); // 打印日志 ARouter.openDebug(); // 開啟調試模式(如果在InstantRun模式下運行,必須開啟調試模式!線上版本需要關閉,否則有安全風險) } ARouter.init(application); }
第四步 設置跳轉Activity,給被跳轉Activity上加入注解:
@Route(path = RouteUtils.User_Activity_Login) public class LoginActivity extends BaseActivity implements View.OnClickListener {
然后跳轉邏輯是
public static void startLoginActivity() { ARouter.getInstance().build(User_Activity_Login).navigation(); }
實現這個Activity跳轉的路徑是
public static final String User_Activity_Login = "/user/login";
這樣子的做法的好處就是,只要是path路徑不變,任你包名或者類名的變化,都可以成功的跳轉到對應的頁面,
另外還有一個功能就是還能實現web網頁跳轉到對應的Activity
ARouter不止可以跳轉Activity還能跳轉fragment
關於我
微信公眾號:infree6 或者直接掃碼