我試圖在Android中使用新的體系結構組件,到目前爲止它工作得很好。但是,我偶然發現了一個架構問題。Android體系結構組件ViewModel上下文問題
我有一個MainActivity
,它承載了一堆片段,A
,B
和C
。到目前爲止,每次我需要我的ViewModel(VM)時,我都會在MainActivity
(如下所示:MyViewModel vm = ViewModelProviders.of(getActivity()).get(MyViewModel.class);
)的環境中獲取它。現在考慮這個:
- 片段
C
讓用戶選擇一定的價值,並將其寫入到。 - 片段
A
使用片段C
讓用戶選擇值,然後A
直接從中讀取值並在其UI中顯示它。 - 片段
B
使用與片段A
相同的方法。
的問題是,由於總是在MainActivity
的背景下,如果片段A
已經B
之前被使用,該值將仍然可用,B
會顯示一些舊數據。
我看到的最明顯的解決方案是分別在片段A
和B
的上下文中創建。但後來我不知道如何讓片段C
訪問那些s。
我還可以創建在片段C
的背景下,但這需要片段A
和B
創造C
一個實例,我不認爲這是一個很好的解決方案。
第三種解決方案是保持當前的方法並在適當的時候清除中的數據,但這也是一團糟。
最好的方法是什麼?
這樣一個簡單的解決方案 - 謝謝! –