簡體   English   中英

Android viewModel和Kotlin:與誰共享viewModel數據?

[英]Android viewModel and Kotlin: Who is the viewModel data shared with?

我研究了viewModel類,並做了一個簡單的測試來理解該理論(初學者)。 我搜索了其他來源,但不確定與該viewModel的數據共享給誰。 使用一個屬性創建了一個簡單的viewModel類:

class MyViewModel: ViewModel() {
    var result: Int? = null
}

從兩個位置為viewModel設置了一個值:

根活動

val model = ViewModelProviders.of(this).get(MyViewModel::class.java)
model.result = 6

片段A:

val model = ViewModelProviders.of(activity).get(MyViewModel::class.java)
model.result = 9

當從Activity中訪問屬性時, 我看到6 當通過片段B(兩個片段都是相同活動的子代)訪問它時, 我看到9 那就對了? Activity使用的viewModel僅對另一個Activity可見嗎? 還是如果一個片段使用了viewModel,那么它也僅對其他片段可見? 如果是,要互相看到,是否需要使用捆綁,參數,意圖或其他東西? 我將不勝感激。

ViewModelProviders.of(activity)檢索的視圖模型僅與該活動及其子項(片段)共享。 除非您創建自己的ViewModelProvider類,否則不能在多個活動之間共享ViewModel。

如果需要在活動之間共享數據,則應遵循存儲庫模式,首先將數據存儲在存儲庫中(該存儲庫綁定到應用程序而不是活動),然后從該存儲庫中檢索其他活動中的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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