在 Activity 和 Fragment 之间有一个共享对象:运行时更改?

Having a shared Object between Activity and Fragment: Runtime changes?

我有一个名为 BaseActivity 的 Activity,托管多个片段。

BaseActivity 有一个 public 字段 Object o 片段通过调用 Object o = ((BaseActivity) getActivity()).o; 访问它,它在片段 onCreate 中初始化。

这行得通,但我遇到了运行时配置更改方面的问题。似乎片段 onCreateBaseActivitys onCreate 之前被调用,所以我无法保留 Bundle 中保存在 onSaveInstanceState 中的对象。

有没有一种方法可以确保活动可以在 Fragment 尝试访问它之前从已保存的 Bundle 中保留它的对象?

试试这个..

 @Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    Object o = ((BaseActivity) getActivity()).o;
}

这确保 activity 的 onCreate 已完成执行。