[英]What happens when i change the observer of a LiveData
如果我有一個使用以下代碼行觀察一些 LiveData 的 ViewModel 會發生什么
myViewModel.getData.observe(getViewLifeCycle(),Observer);
如果我的視圖 model 中有另一個 LiveData data2 並且我開始觀察這些數據怎么辦。
myViewModel.getData2.observe(getViewLifeCyle(),Observer);
第一個觀察者會發生什么? 這是否被認為是 memory 泄漏? 在我 go 觀察花葯數據之前,我應該刪除數據上的所有觀察者嗎?
編輯:我有一個 SearchBar 的以下代碼,用於觀察房間數據庫中的數據。
@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);
每當文本發生變化時,我都會在方法中一遍又一遍地重復它。 那么這會導致問題嗎?
這里沒有立即可見的泄漏。 您當然可以同時觀察盡可能多的 LiveData - 盡可能多地放入 memory。 如果你想要的話,他們都可以共享同一個觀察者 object。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.