【发布时间】:2022-01-22 18:08:51
【问题描述】:
最近,我将 Coroutines 应用到我的项目中,一切似乎都很好,但今天我遇到了一个问题 [使用 Coroutine + Retrofit 将文件/图像上传到服务器][1] 使用协程+Retrofit上传文件好像没有解决办法,所以必须使用callback进行改造。
//Api interface
interface UploadFileApiKotlin {
@Multipart
@POST("/uploadFileApi")
fun uploadFiles(
@Part listUri: List<MultipartBody.Part>
): Call<Response<List<FileResponse>?>>
}
//ViewModel class
serviceScope.launch {
//Insert into db
repository.insertNewExtAct()
//Send data into server.
val call = RequestHelper.getUpLoadFilesKotlinRequest().uploadFiles(partList)
call.enqueue(object : Callback<Response<List<FileResponse>?>> {
override fun onResponse(
call: Call<Response<List<FileResponse>?>>,
response: Response<Response<List<FileResponse>?>>
) {
TODO("Not yet implemented")
}
override fun onFailure(
call: Call<Response<List<FileResponse>?>>,
t: Throwable
) {
TODO("Not yet implemented")
}
})
//Wait for response from server and do logic
}
我的问题是:如何暂停协程的执行以等待改造的回调?
谢谢兄弟。 [1]:Upload file/image into server using Coroutine + Retrofit
【问题讨论】:
标签: android kotlin retrofit2 kotlin-coroutines coroutinescope