android activity之间传递对象(Serializable 和 Parcelable)

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) {  
      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值