序论
在Android中,我们需要传递对象的引用在activity和fragment之间,因此我们不得不放在Intent/Bundle中。
通过api我们了解到有两种选择,可以使用对象的**Parcelable或者Serializable**形式,作为Java的开发者,我们已经知道Serializable机制,那么为什么还有Parcelable?
要回答这个问题,先让我们看看这两个方法。
Serializable,简单之主
// access modifiers, accessors and constructors omitted for brevity
public class SerializableDeveloper implements Serializable
String name;
int yearsOfExperience;
List<Skill> skillSet;
float favoriteFloat;
static class Skill implements Serializable {
String name;
boolean programmingRelated;
}
}
Serializable的美在于你只需要将类和他的子类实现Serializable接口,这是一个标记接口,意味着没有方法来实现,Java可以简单有效的实现它的序列化。
这个方法的问题是,他使用到了反射,并且它是一个缓慢的进程。正是这个机制,创造了大量的临时对象,并且造成大量的gc。