我有一个可能有点愚蠢的问题,但我没有找到任何答案。所以我有一个 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/