Как правильно отправить событие ViewModel при запуске активности в функции инициализации ViewModel?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как правильно отправить событие ViewModel при запуске активности в функции инициализации ViewModel?

Сообщение Anonymous »

Я хочу, чтобы после создания действия открывался экран камеры. Когда я отправляю событие, запускающее камеру, в функции инициализации ViewModel, ничего не происходит:
Функция инициализации ViewModel:

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

init{
viewModelScope.launch {
_eventFlow.emit(
UiEvent.TakePhoto
)
}
}
Функция, запускающая камеру в действии:

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

  override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

lifecycleScope.launch {
lifecycle.repeatOnLifecycle(Lifecycle.State.RESUMED)
{
viewModel.eventFlow.collectLatest { event ->
when(event){
is PhotoViewModel.UiEvent.TakePhoto ->
{
takePhoto()
}
}
}
}
}
}

private fun takePhoto()
{
val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
resultLauncher.launch(cameraIntent)
}
Но когда я добавляю задержку в функцию инициализации, она работает:

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

init{
viewModelScope.launch {

delay(1000)

_eventFlow.emit(
UiEvent.TakePhoto
)
}
}
Есть ли более правильное решение?

Подробнее здесь: https://stackoverflow.com/questions/786 ... nction-cor
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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