SavedStateHandle получает ноль с помощью koinAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 SavedStateHandle получает ноль с помощью koin

Сообщение Anonymous »

У меня есть SavedStateHandle в ShareViewModel,
и в 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:

Код: Выделить всё

koin-core:3.4.3

Код: Выделить всё

lifecycle-viewmodel-savedstate:2.5.1


Подробнее здесь: https://stackoverflow.com/questions/785 ... -with-koin
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»