我在这样的片段之间发送数据:
public static final MyFragment newInstance( MyObject obj )
{
MyFragment f = new MyFragment();
// Get arguments passed in, if any
Bundle args = f.getArguments();
if (args == null) {
args = new Bundle();
}
// Add parameters to the argument bundle
args.putParcelable("obj", obj ); // clone or referenced? MyObject implements parcelable
f.setArguments(args);
return f;
}
我发现我传递的物体正在均匀地改变。例如,当我按下后退按钮并返回到最后一个片段时,我的对象具有我刚刚离开的片段的当前状态。
Bundle.putParcelable()不会复制对象吗?
答案 0 :(得分:1)
来自Android来源:
public void putParcelable(String key, Parcelable value) {
unparcel();
mMap.put(key, value);
mFdsKnown = false;
}
所以不,putParcelable
没有克隆对象。