Android中Intent中传递对象的方法,
一种是Bundle.putSerializable(Key,Object);
另一种是Bundle.putParcelable(Key, Object);
当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口
过程:
第一,Object:implements Serializable 或者 implements Parcelable
第二,对象里不要包括Bitmap,不然会报错:
第三,在传递端:
Intent intent = new Intent(当前的activity.this,目标Activity.class);
Bundle mBundle = new Bundle();
mBundle.putSerializable(“设置标记的key”,对象Bean); 或者 mBundle.putParcelable(“设置标记的key”,对象Bean);
intent.putExtras(mBundle);
startActivity(intent);
第四,接收端:
对象bean= (对象bean) getIntent().getSerializableExtra(“设置标记的key”);
性能:
1.在使用内存的时候,Parcelable 类比Serializable性能高,所以推荐使用Parcelable类。
2.Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC。
3.Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelable不能很好的保证数据的持续性在外界有变化的情况下。
尽管Serializable效率低点, 也不提倡用,但在这种情况下,还是建议你用Serializable 。
示例:
import java.io.Serializable;
public class Person implements Serializable {
private static final long serialVersionUID = -7060210544600464481L;
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {