我一直在写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接口中定义的,我不明白你的观点 –