簡體   English   中英

當我更改 LiveData 的觀察者時會發生什么

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM