【发布时间】:2021-09-24 19:33:06
【问题描述】:
我有 2 个视图模型 -
- MainViewModel**
- StorageViewModel
StorageViewModel.kt
class StorageViewModel @ViewModelInject constructor(private val preferenceStorage:
PreferenceStorage, @ApplicationContext context: Context) : ViewModel() {
........
//save last played song
fun saveLastPlayedSong(song: Songs){
viewModelScope.launch {
protoDataStoreManager.saveLastPlayedSong(song)
}
}
}
现在,我想在 MainViewModel
中调用 saveLastPlayedSong 函数MainViewModel.kt
class MainViewModel @ViewModelInject constructor(
private val musicServiceConnection: MusicServiceConnection,
private val storageViewModel: StorageViewModel
) : ViewModel(){
.........
fun playOrToggleSong(
mediaItem: Songs, toggle: Boolean = false
)
{
//here, I want to call the function from StorageViewModel e.g
storageViewModel.saveLastPlayedSong(mediaItem)
}
}
如何在 MainViewModel 中实例化“StorageViewModel”以及最好的方法是什么(良好实践)。
我正在使用 MVVM 和 Hilt。
【问题讨论】:
-
如果对您有帮助,请您接受答案吗?这可以帮助其他人。
标签: android android-studio kotlin mvvm