0
通常我必須傳遞給片段(或活性)一些接口實例,不需要任何內部數據。要將它傳遞給片段(或活動),我應該將它寫入Bundle
(或Intent
),作爲Parcelable
或Serializable
。我從這兩個選項中選擇什麼?Parcelable VS序列化 - 用於類沒有任何字段
例子:
public class SomeFragment {
public static interface Helper {
View prepareView(SomeFragment fragment, LayoutInflater inflater);
// etc.
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return extractHelperFromArguments().prepareView(this, inflater);
}
public static SomeFragment newInstance(Helper helper) {
SomeFragment fragment = new SomeFragment();
//
// Bundle args = new Bundle();
//
// args.putParcelable(KEY_HELPER, (Parcelable) helper);
// or
// args.putSerializable(KEY_HELPER, (Serializable) helper);
// ?
//
// fragment.setArguments(args)
return fragment;
}
}
如果讓我選擇Parcelable
然後我要聲明靜態字段CREATOR
和空方法describeContents()
和writeToParcel()
(空因爲該類沒有字段)。
如果讓我選擇Serializable
然後我沒有做任何事情。
對不起,我的英語
這是完美的答案。 – 2014-10-22 06:47:59
如果速度因數只是2等上的圖像上面我wouldnt在實施Parcelable麻煩,事實上,我beleive這一個更接近的事實:http://www.developerphil.com/parcelable-vs-serializable/ – pskink 2014-10-22 07:54:52
@pskink LOL 。感謝您分享鏈接。儘管實現可串行化的簡單性,但可以使用Parcelable。 – user3144836 2015-07-19 16:22:11