一、说明
最近为了项目的模块化和插件化,将项目中的所有跳转改用阿里的ARouter,在写demo的时候尝试用withObject传递object参数,一直提示失败,看文档也没有找到具体原因,后来经过看源码和测试,发现有些地方有点坑,在此记录一下。
二、坑解
public class Person {
public String name;
public String age;
public Person() {
}
public Person(String name, String age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
if (TextUtils.isEmpty(name)) {
return "";
} else {
return "name : " + name + "\n age : " + age;
}
}
}
public static void startPage() {
Person person = new Person("小明", "20");
ARouter.getInstance().build("/main/page")
.withObject("person", person)
.navigation();
}
- 成员变量不要写成private,测试除private以外的几个都可以成功。
- 如果有其它购构造函数,空构造函数一定要写出来,否则传递失败。
- model尽量提前初始化,如果放到withObject()来一个new Person(),可能会失败(有时候没问题)。