#android #android-livedata #kotlin-coroutines #coroutine
Вопрос:
Моя модель представления выглядит следующим образом:
class BlogListActivityViewModel @ViewModelInject constructor(
private val blogRepository: BlogRepository,
private val context: Application,
@IoDispatcher private val ioDispatcher: CoroutineDispatcher
) : AndroidViewModel(context) {
var blogDeleteLiveData = MutableLiveData<Resource<DeleteResponse>>()
fun deleteBlog(itemId: Int) {
viewModelScope.launch(ioDispatcher) {
blogDeleteLiveData.postValue(Resource.loading())
try {
val deleteResponse = async { blogRepository.deleteBlog(itemId) }
blogDeleteLiveData.postValue(Resource.success(deleteResponse.await()))
} catch (e: Exception) {
blogDeleteLiveData.postValue(Resource.error(message = context.getString(R.string.unable_to_load_blog)))
}
}
}
}
Вызов активности выглядит следующим образом:
blogListActivityViewModel.blogDeleteLiveData.observe(this, Observer { resource ->
val sweetDialog = SweetAlertDialog(this, SweetAlertDialog.PROGRESS_TYPE)
sweetDialog.titleText = "Deleting"
sweetDialog.setCancelable(false)
resource?.let { resource ->
when (resource.status) {
Resource.Status.SUCCESS -> {
blogListAdapter.deleteBlog(deletedBlog)
sweetDialog.changeAlertType(SweetAlertDialog.SUCCESS_TYPE)
sweetDialog.contentText = "Successfully deleted !!"
sweetDialog.titleText = "Congratulation"
}
Resource.Status.ERROR -> {
sweetDialog.changeAlertType(SweetAlertDialog.ERROR_TYPE)
sweetDialog.contentText = resource.message
sweetDialog.titleText = "Oops Something Wrong"
}
Resource.Status.LOADING -> {
deleteDialog.dismissWithAnimation()
sweetDialog.changeAlertType(SweetAlertDialog.PROGRESS_TYPE)
sweetDialog.contentText = "Please wait while deleting..."
sweetDialog.show()
}
}
}
})
blogListActivityViewModel.deleteBlog(blog.id)
Но я продолжаю получать
ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: DefaultDispatcher-рабочий-2
Комментарии:
1. Прежде всего, используйте
CoroutineExceptionHandler
, чтобы получить читаемое исключение, после этого вы сможете определить причину.2. Опубликовать трассировку полного стека