Activity, Service之间传递数据使用intent来传递,但是android的api 文档中都是传递int, long, float这种已知类型,那么如何传递自定义类的对象呢?
使用 putExtra
(String
name, Serializable
value)
api.
所以自定义的类需要实现 Serializable
类。
自定义的
类中的成员类型也必须是实现Serializable的,当然基本类型除外。
例如:
private TreeMap<Integer, Item> data;
private int count;
private final int MAX_COUNT = 10;
}
public class Item implements Serializable{
private String a;
private String b;
public Item() {
}
}
上面的MyClass和Item实现
Serializable。
是不是很好奇,其中用到的TreeMap还有String类,他们是实现Serializable的类吗?
答案是 是的。下面是两个类的声明:
public class TreeMap<K, V> extends AbstractMap<K, V> implements SortedMap<K, V>, Cloneable, Serializable
public final class String implements Serializable, Comparable<String>, CharSequence
但,如果自定义的类本身不是真正的Serializable,那么对于效率来讲是没有影响的。