首页 > 解决方案 > 单个片段中的多个 LiveData 观察者

问题描述

我在如下片段中使用多个 Livedata ovserver。这是最好的方法吗?

    final Observer<String> textLeftObserver = textLeft -> {
        //body
    };

    final Observer<String> textRightObserver = textRight -> {
          //body
    };

    appViewModel.getTextLeft().observe(getViewLifecycleOwner(), textLeftObserver);
    appViewModel.getTextRight().observe(getViewLifecycleOwner(), textRightObserver);

标签: androidandroid-livedataandroid-architecture-componentsandroid-viewmodel

解决方案


您可以在一个片段中使用多个观察者。只有当每个观察者的数据流不同时,这才完全没问题。

例如你有一个用户流和一个订单流在这里使用两个观察者很好。

但是,如果您正在观察两个流,一个是用户名和用户年龄。那么您可以只使用用户对象创建一个流并收听它而不是创建两个。

我希望它能帮助你理解。


推荐阅读