实现Observer模式的片段

时间:2015-09-30 08:52:41

标签: android fragment observer-pattern

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

现在我对必须添加和删除观察者的位置存有疑问。我的意思是片段中最正确的回调。

现在我使用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,但对此问题一无所知。

1 个答案:

答案 0 :(得分:1)

正如您所说的那样,您只是更新视图,onCreateView和onDestroyView适合此代码。

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