假设我有一个具有pricetag属性的Product对象。我还有一个商店列表,每个商店都有自己的产品列表。
具体来说,Product p的价格为9.99美元,Store列表中的Store在其产品列表中有p。
我在Android活动中有这个商店列表,我通过意图将Product p传递给另一个活动,然后在新活动中更改该对象的价格。完成此新活动并返回旧活动后,对该对象所做的更改是否反映在商店的产品列表中?
答案 0 :(得分:9)
不保留引用。包裹是:
可以的消息(数据和对象引用)的容器 通过IBinder发送。包裹可以包含扁平数据 在IPC的另一端(使用各种 这里用于编写特定类型的方法,或者一般的 Parcelable接口),以及对IBinder的引用 将导致另一方接收代理IBinder的对象 与包裹中的原始IBinder连接。
如果您查看任何parcelable,就会有CREATOR
。这会在Parcel
之外创建一个新对象。
例如:
public static final Creator<Employee> CREATOR = new Creator<Employee>() {
@Override
public Employee createFromParcel(Parcel in) {
return new Employee(in);
}
@Override
public Employee[] newArray(int size) {
return new Employee[size];
}
};
因此,如果您希望从其他活动获取任何数据返回,请使用startActivityForResult
作为Lawrance提及。