我的视图模型如下所示:
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-worker-2