实现观察者模式的片段

Fragment which implements Observer pattern

我有一个可能有点愚蠢的问题,但我没有找到任何答案。所以我有一个 Fragment 和一些扩展 Observable 的实体对象。我希望在我的实体中进行某些更改时通知我的 Fragment,因此我在那里实现了一个 Observer。

现在有点疑惑,到底要在什么地方增删观察者。我的意思是 fragment 中最正确的回调。

现在我正在使用 onViewCreated 添加观察者,onDestroyView 删除观察者,但我认为可能有更好的地方可以做到这一点。

这是一个示例代码:

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    WheelManager.getInstance().addObserver(this);
    PreferenceManager.getInstance().addObserver(this);
}

@Override
    public void onDestroyView() {
        super.onDestroyView();
        WheelManager.getInstance().deleteObserver(this);
        PreferenceManager.getInstance().deleteObserver(this);
    }

非常感谢您的回答。

UPD: 我也看过 Official Developer Guide,但没有找到关于这个问题的任何信息。

正如您所说,您只是更新视图,onCreateView 和 onDestroyView 是这段代码的合适位置。

这有一个例外,那就是当您更新 AdapterViews 和 RecyclerViews 时——您可以在 onAttach 中实例化您的适配器并从那里开始观察(并在 onDetach 中停止它)。您可以 link 您的适配器到您在 onCreateView 中的视图,而不必担心 NPE 等