и в HomeFragment я получаю ShareViewModel из MainActivity,
также передаю ShareViewModel в HomeViewModel,
Проблема в том, что SavedStateHandle получает значение null после перезапуска приложения из фонового режима.
В модулях:
Код: Выделить всё
val viewModelModule = module {
viewModel { ShareViewModel(get()) }
viewModel { (shareViewModel: ShareViewModel) ->
HomeViewModel(
shareViewModel
)
}
}
Код: Выделить всё
class ShareViewModel(
val stateHandle: SavedStateHandle
) : ViewModel(), KoinComponent {
val sharedResp: MutableLiveData = stateHandle.getLiveData(KEY_RESP, null)
fun getSharedResp(): Resp? {
return sharedResp.value
}
fun updateResp(resp: Resp) {
sharedResp.value = resp
}
}
Код: Выделить всё
class MainActivity : BaseActivity(R.layout.activity_main) {
private val shareViewModel: ShareViewModel by viewModel()
}
Код: Выделить всё
class HomeFragment : BaseFragment() {
private val shareViewModel: ShareViewModel by activityViewModel()
private val viewModel by viewModel {
parametersOf(shareViewModel)
}
Код: Выделить всё
class HomeViewModel(
private val shareViewModel: ShareViewModel,
)
- На мобильном устройстве откройте переключатель «Не сохранять действия» и запустите приложение< /li>
перевести приложение в фоновый режим - перезапустить приложение
- значок SavedStateHandle станет нулевым, но продолжайте делать этот круг 3 раза SavedStateHandle возвращает значение
Код: Выделить всё
koin-core:3.4.3Код: Выделить всё
lifecycle-viewmodel-savedstate:2.5.1Подробнее здесь: https://stackoverflow.com/questions/785 ... -with-koin
Мобильная версия