0

我在这样的片段之间发送数据:

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() 不会克隆对象吗?

4

1 回答 1

1

来自安卓资源:

public void putParcelable(String key, Parcelable value) {
     unparcel();
     mMap.put(key, value);
     mFdsKnown = false;
}

所以不,putParcelable不克隆对象。

于 2013-04-28T05:51:46.727 回答