如果我的ViewModel使用以下代码行观察了一些LiveData,会发生什么情况
myViewModel.getData.observe(getViewLifeCycle(),Observer);
如果我的视图模型中有另一个LiveData data2并开始观察此数据,该怎么办。
myViewModel.getData2.observe(getViewLifeCyle(),Observer);
第一个观察者会发生什么?那被认为是内存泄漏吗? 在观察花药数据之前,应该删除数据上的所有观察者吗?
编辑: 我有一个用于搜索栏的以下代码,用于观察Room数据库中的数据。
@Override
public boolean onQueryTextChange(String s) {
String query = "%" + s + "%";
Log.d(TAG, "onQueryTextChange: " + query);
problemViewModel.getProblemsByQuery(query).observe(getViewLifecycleOwner(),observer);
return true;
}
我担心这条线。
problemViewModel.getProblemsByQuery(query).observe(getViewLifecycleOwner(),observer);
每当文本更改时,我都会在方法内一遍又一遍地重复。那会引起问题吗?
答案 0 :(得分:0)
这里没有立即可见的泄漏。当然,您可以同时观察任意数量的LiveData-尽可能多地容纳到内存中。如果您想要的话,他们都可以共享同一个观察者对象。