清除sharedViewModel

时间:2019-07-10 06:08:54

标签: android kotlin android-jetpack android-viewmodel koin

我正在使用Koin将viewModel注入片段。我的应用是单项活动。我仅在servisFragment和partFragment中需要该sharedViewModel。 我想在导航后用红色标记清除viewModel。

我该怎么做?

navigation

用于注入viewModel的代码

    private val servisViewModel by sharedViewModel<ServisViewModel>()

Koin sharedViewModel

inline fun <reified T : ViewModel> Fragment.sharedViewModel(
    name: String? = null,
    noinline from: ViewModelStoreOwnerDefinition = { activity as 
    ViewModelStoreOwner },
    noinline parameters: ParametersDefinition? = null
) = lazy { getSharedViewModel<T>(name, from, parameters) }

谢谢您的帮助。

1 个答案:

答案 0 :(得分:2)

如果您需要清除viewModels中的所有Fragment,请在您的Fragment中尝试

viewModelStore.clear()

如果您需要清除具体的ViewModel,请尝试

getViewModelStore(ViewModelParameters(...)).clear()