0

我一直在努力的Android體系結構組件一會兒這是在谷歌IO推出2017年Android體系結構組件中AndroidViewModel和ViewModel之間的區別是什麼?

他們的一個組件,以避免配置更改它們提供ViewModel問題,AndroidViewModel

按照商務部:

AndroidViewModel:應用情境感知ViewModel

視圖模型:的ViewModels也可以用作Activity.Each片段的不同片段之間的通信層可以經由他們的活動

使用相同的密鑰獲取ViewModel但對於AndoirdViewModel場景我可以由類延伸到應用得到應用上下文

它們在Android開發中的實際區別是什麼?因爲兩者都只附加到Activity/Fragment生命週期。

+0

你問同一個問題中的2件事,我相信你可以切換標題並關注它爲什麼使用AndroidViewModel來代替擴展Application。 @CommonsWare給出的答案仍然有效。 通過這種方式,您可以要求刪除「重複」標籤,因爲創建一個新問題以獲得良好答案......我不認爲這是一個好主意。 – MiguelHincapieC

回答

2

但AndoirdViewModel情景,我可以通過一個類延伸到應用類

創建的Application自己的自定義子類不會奇蹟般地使該單個實例提供給ViewModel獲取應用程序上下文。

可以創建Application的自定義子類,該子類有自己的getInstance()方法或直接公開單例的方法。谷歌不喜歡這種模式(對此我也不喜歡),所以Google不會引導開發者使用它。

它們在Android開發中的實際區別是什麼?

A ViewModel自己沒有好辦法得到ContextAndroidViewModel提供Application用作Context,並且特別提供Application單身人士,所以我們確信Context本身不代表內存泄漏。

相關問題