Answers:
有在规定的恒定Parcelable
称为CONTENTS_FILE_DESCRIPTOR
这是指在所使用describeContents()
创建位掩码返回值。
API参考CONTENTS_FILE_DESCRIPTOR
中的说明为:
与describeContents()一起使用的位掩码:每个位代表一种被整理后被认为具有潜在特殊意义的对象。
真正的意思是:如果您需要将FileDescriptor
对象放入Parcelable中,则应该/必须将其指定CONTENTS_FILE_DESCRIPTOR
为describeContents()的返回值,即通过“ 特殊对象 ”(在describeContents()
描述中),其真正含义是:FileDescriptor
。
整个Parcelable功能似乎尚未完成(阅读:设计不良)。文档中还有另外一件奇怪的事情:
实现Parcelable接口的类还必须具有称为CREATOR的静态字段,该字段是实现Parcelable.Creator接口的对象。
通过以人类可读形式定义的规则实现多重继承?:-)
似乎是C ++程序员设计的Parceable
,在某个时候他意识到:噢,该死,Java中没有多重继承... :-)
describeContents()
只要“没有什么特别之处”,都应返回0 。哪一点都不能解释。您的解释非常清楚!
只有两个可能的值,即0或CONTENTS_FILE_DESCRIPTOR
如果要序列化POLO,则此值应始终为0,这将为ParcelFileDescriptor保留CONTENTS_FILE_DESCRIPTOR,这可以在* unix系统中序列化File Descriptor(FD)。