Android 为什么';Fragment的子类是否有空构造函数?(谷歌落选)

Android 为什么';Fragment的子类是否有空构造函数?(谷歌落选),android,android-fragments,fragment,wear-os,Android,Android Fragments,Fragment,Wear Os,碎片文件说: Fragment的所有子类必须包含一个公共空构造函数。 框架通常会在需要时重新实例化片段类, 尤其是在状态恢复期间,需要能够找到 构造函数来实例化它。如果空构造函数不是 如果可用,则在状态期间的某些情况下会发生运行时异常 恢复 但是这个类没有空的构造函数。为什么这个类没有空构造函数? 因为它的超类(它扩展的类)有一个公共构造函数,所以所有子类都可以使用它。因为它不能在片段事务中由容器轻松地重新创建,所以这些托管类被鼓励保留默认构造函数。例如,恢复片段的状态,这是自动执行的 该结构

碎片文件说:

Fragment的所有子类必须包含一个公共空构造函数。 框架通常会在需要时重新实例化片段类, 尤其是在状态恢复期间,需要能够找到 构造函数来实例化它。如果空构造函数不是 如果可用,则在状态期间的某些情况下会发生运行时异常 恢复

但是这个类没有空的构造函数。为什么这个类没有空构造函数?

因为它的超类(它扩展的类)有一个公共构造函数,所以所有子类都可以使用它。

因为它不能在片段事务中由容器轻松地重新创建,所以这些托管类被鼓励保留默认构造函数。例如,恢复片段的状态,这是自动执行的


该结构不禁止使用它,您可以根据需要添加其他构造函数,例如,在单元测试期间使用它们,但是确保在应用程序运行时保持公共默认构造函数可用

显然,此代码是错误的。但我对可穿戴设备了解不多。也许SDK与wear设备的工作方式不同


没有空构造函数的问题只有在系统终止(保存)一个
活动并重新创建它时才会出现。它想创建一个
片段的实例,但不能。

我认为这是可穿戴设备的一个示例,因此它可能与可穿戴设备上稍有不同的框架有关?但超类是片段,正如文档所述,片段只能有一个空构造函数。False,如果向类中添加构造函数,则不会创建默认构造函数。必须显式显示匹配
super()的构造函数@Kevinrob是对的。此外,我检查了错误的链接。第二个链接上的类确实有一个构造函数。你是对的。您可以在customs构造函数中使用
setArguments(Bundle)
,并使用
getArguments()
。重新创建时,系统将使用无参数构造函数重新设置参数。