我一直在寫Parcelable
s到Parcel
沒有任何專注於標誌字段,這是在方法簽名的參數,它一直很好,但我遇到了一個實現,我再也不能忽視他們:Parcelable中的標誌有什麼用處?
public static <K extends Parcelable, V extends Parcelable> void write(Parcel dest,
Map<K, V> map, int flags) {
if (map == null) {
dest.writeInt(-1);
} else {
Set<Map.Entry<K, V>> entrySet = map.entrySet();
dest.writeInt(entrySet.size());
for (Map.Entry<K, V> entry : entrySet) {
dest.writeParcelable(entry.getKey(), flags);
dest.writeParcelable(entry.getValue(), flags);
}
}
}
這是一個Map
向/從Parcelable
公用事業我已經寫了,我想知道如果標誌應傳遞,因爲它是既重點還有價值而寫他們還是應該傳遞0密鑰和flags
for Value。
我看了一個什麼樣的標誌是在docs定義:
PARCELABLE_WRITE_RETURN_VALUE
API等級加1
int PARCELABLE_WRITE_RETURN_VALUE
標誌爲使用
writeToParcel(Parcel, int)
:被寫入的對象是 是一個返回值,這是一個功能,諸如 「Parcelable someFunction()」,「空隙someFunction(出Parcelable)」,或「空隙someFunction(INOUT Parcelable)」的結果。有些 實現可能希望在此時釋放資源。恆值:1(00000001)
但我無法理解它。任何人都可以簡單地解釋一下Parcelable
標誌是什麼以及它應該如何使用?
「返回值,這是一個函數的結果」是非常自我解釋 –
@ cricket_007: \t 我有一個空隙方法??但這是一個靜態方法?這與什麼有關?如果你引用了方法entry.getKey(),那麼它確實返回一個Parcelable。國旗不應該是1嗎? –
'void write'是你的方法,'entry.getKey()'是在Map接口中定義的,我不明白你的觀點 –