我正在尝试重新设计一些片段以从onAttach和onActivityCreated覆盖中删除依赖关系,而是在onViewCreated覆盖中稍后查找Activity。Activity onCreate完成之前可以调用onViewCreated吗?
是否有任何Android应用程序生命周期中的Activity onCreate完成之前调用了片段的onViewCreated的情况。例如,我知道:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
通常不会造成碎片onAttach被称为(假设片段被添加到片段经理编程以后),但在极少数情况下与配置更新的片段经理可以重新创建片段在super.onCreate中导致在onCreate之前调用onAttach以完成活动。
“请从onAttach依赖和onActivityCreated” 为什么?这样做的具体原因是什么? – Sufian
因为我有一个循环依赖关系。 Activity onCreate初始化应用逻辑,该逻辑决定要创建哪个片段并创建它。但在极少数情况下,Activity onCreate super.onCreate正在重新创建片段本身(这很糟糕 - 它不知道在任何给定点上哪个片段是正确的,但无论如何)。因此,引用onAttach中的活动的片段正试图引用尚未配置的库,因为库尚未决定哪个片段甚至尚未使用。 – user3690202
我认为当Activity被重新创建时(比如在方向改变或者回到活动时),你将面临这个问题,它将有一个参数'Bundle savedInstanceState'非空。 – Sufian