Android路由框架 - ARouter使用(一) Activity跳转

ARouter是阿里开源的一款路由框架,他可以方便的去跳转界面,并自动注入参数到目标页面中,处理组件化模式开发,Module间的跳转及通信。

ARoutter-Github地址

在组件化模式开发时,以前应该会遇到过需要跳转其他模块的Activity或Service,去引用其他module就会造成引用非常乱,还会出现循环引用

想跳转就需要隐式跳转,而且要配置Manifest和Intent跳转,难以维护,代码混乱。

 

那么使用ARouter就可以处理这些问题,首先配置gradle引用

//api
api 'com.alibaba:arouter-api:1.3.1'
//注解处理器(每个需要配置的Module都要引用,否则会匹配不到该Module下的route)
annotationProcessor 'com.alibaba:arouter-compiler:1.1.4'

然后在defaultConfig下配置

//注解预处理时需要的字段,每个需要配置的Module都要配置,否则匹配不到该Module下的Route
javaCompileOptions {
       annotationProcessorOptions {
          arguments = [moduleName :project.getName() ]
       }
}

 配置好了以后进行初始化

public class MyApplication extends Application {

    //是否是调试模式
    private static final boolean isDebug = true;

    @Override
    public void onCreate() {
        super.onCreate();
        if(isDebug) {
            //开启日志
            ARouter.openLog();
            //开始调试模式,如果在DEBUG下不设置的话 在移动修改某些类或配置会出问题,因为有些东西判断版本号变更使用了缓存,开启的话每次会重新获取
            ARouter.openDebug();
        }
        //ARouter 初始化
        ARouter.init(this);
    }
}

有MainActivity和SimpleActivity,想要实现跳转的话,需要先配置路由 (可将path 配置到一个常量类中进行管理维护) 

⚠️ path 最少2级 /xxx/xxx

@Route(path = "/app/MainActivity")
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ARouter.getInstance().inject(this);
    }
}


@Route(path = "/app/SimpleActivity")
public class SimpleActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_simple);

        ARouter.getInstance().inject(this);
    }
}

配置好路由后在MainActivity通过以下api跳转

ARouter.getInstance().build(“/app/SimpleActivity”).navigation();

这样简单的跳转就完成了,下面携带参数进行跳转,在SimpleActivity声明全局变量,通过Autowired注解自动注入

    @Autowired
    String id;

    @Autowired
    int type;

 然后在MainActivity跳转使用withxxx 携带参数,和Intent一样 String,int 等基础数据类型都支持,对象的传递需要序列化实现Parcelable 或 Serializable

ARouter.getInstance().build("/app/SimpleActivity")
                    .withString("id","e235425jjfjkd")
                    .withInt("type",2)
                    //.withParcelable("person",new Person("gong",27))
                    .navigation(this,123); 
//第二个参数123为requestCode ,相当于startActivityForResult

跳转过去以后就可以直接使用变量了,不需要在手动获取。

组件间的跳转是一样的,无特殊处理,就不需要隐式跳转了。

Activity跳转大概就这些了,拜拜。

Android路由框架 - ARouter使用(二)模块间Service通信调用

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android ARouter 是一个用于实现组件化、模块化开发的路由框架,它提供了一种简单的方式来实现不同组件之间的跳转和通信。 使用 ARouter 的步骤如下: 1. 在项目的 build.gradle 文件中添加依赖: ```groovy implementation 'com.alibaba:arouter-api:x.x.x' annotationProcessor 'com.alibaba:arouter-compiler:x.x.x' ``` 请将 `x.x.x` 替换为最新的版本号。 2. 在需要使用 ARouter 的模块中,创建一个类似于 Application 的类,并在其 `onCreate()` 方法中进行 ARouter 的初始化: ```java public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); if (BuildConfig.DEBUG) { ARouter.openLog(); ARouter.openDebug(); } ARouter.init(this); } } ``` 3. 在需要跳转到的目标页面中,使用 `@Route` 注解进行标记,以便 ARouter 进行识别: ```java @Route(path = "/path/to/target") public class TargetActivity extends AppCompatActivity { // ... } ``` 4. 在需要跳转的地方,通过调用 `ARouter.getInstance().build("/path/to/target").navigation()` 来实现页面跳转: ```java ARouter.getInstance().build("/path/to/target").navigation(); ``` 5. 如果需要传递参数,可以使用 `withXxx` 方法来添加参数: ```java ARouter.getInstance() .build("/path/to/target") .withString("key", "value") .navigation(); ``` 通过以上步骤,你就可以在 Android 项目中使用 ARouter 进行页面跳转和参数传递了。当然,ARouter 还提供了其他功能,比如拦截器、URI 跳转等,你可以根据具体需求进行使用。希望对你有所帮助!如果还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值