怎么在Activity之间传递对象?

       我们知道在Android 系统中,可以用Bundle或Intent来保存和传递数据。我们有时由于程序某种需要,可能需要传递各种各样的自定义对象,只传递简单类型的数据是不够的。但这些对象在Activity之间不能直接传递,用什么方法去解决?

 

方法一:将一个公共类作为对象传输中介. 将变量写成公共静态型,在A Activiy设置Center.a=new Obiect() 在 B Activiy接收Object b=Center.a,如:
public class Center{
   public static Object a;
}

不推荐,此方法安全性差,可能由于多个类的调用导致传输出错。

方法二:实现接口Serializable
   实现Serializable接口即可用Bundle类的putSerializable()方法将对象传递.

不推荐,此方法将引起频繁的GC,效率较差

方法三:实现接口Parcelable
  需实现Parcelable接口及其方法,在writeToParcel()方法中写入对象属性;添加公共静态变量CREATOR,在此实现对象属性读出。CREATOR属性用于告诉平台如何创建该类的实例,而writeToParcel()方法用于告诉平台如何将该类的数据存储到包裹中.通过对属性名和方法名进行约定,平台可以获知该对象的数据的读取和写入的接口,从而可以进行对象的实例化(从包裹中创建累实例)和持久化(讲类实例存储到包裹中).然后就可以用Bundle的putParcelable()方法传递对象.

你可能感兴趣的:(怎么在Activity之间传递对象?)