android - 实现观察者模式的 fragment

标签 android fragment 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 , 但找不到关于这个问题的任何信息。

最佳答案

正如您所说,您只是在更新 View ,onCreateView 和 onDestroyView 是放置此代码的合适位置。

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

关于android - 实现观察者模式的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32861852/

相关文章:

android - 管理 Google map API key

java - 印地语 kavita 正确对齐/对齐

android - 列表 fragment 简单示例

具有插件之间共享接口(interface)的 C# 插件架构

Dart 可观察更改处理程序

android - 使用 AsyncTaskLoader 填充 ListView

android - 将文件写入/系统

Android 在 Fragment 中添加 Tab

android - 使用抽屉导航时管理后退按钮行为的准则是什么?

java - 我在哪里可以找到关于观察者设计模式的好资料?