savedInstanceState 包在设备旋转后始终为 null

savedInstanceState bundle is always null after device rotation

(我知道这个问题之前已经被问过很多次了,但是 none 我读过的答案对我有帮助。)

旋转我的设备后,我的片段被重新创建,但 Bundle 在 onCreate/onViewStateRestored/etc 中收到。始终为空。该片段具有有效 ID 且 retainInstance 设置为 false。

我正在写入提供给 onSaveInstanceState 方法的 Bundle,该方法在设备旋转时按预期方式调用。旋转之后,所有预期的生命周期回调也会被调用(onCreate、onActivityCreated、onViewStateRestored 等)。但是,提供的 Bundle 在每种情况下都是空的。

我读到的关于这个主题的所有内容都表明片段应该接收在 onSaveInstanceState 中写入的 Bundle。我唯一能想到的可能与众不同的是片段位于导航图组件内。请注意,我没有覆盖 activity.

中的 onSaveInstanceState

什么会导致我的片段的 Bundle 在旋转后为空?

事实证明,Activity 中的 onCreate 重写并将 null 而不是 savedInstanceState 传递给 super.onCreate