Android 协同程序:Can';完成工作后返回值
在我的android应用程序中,我需要在执行一些长时间的网络操作后返回结果(例如10秒后) 下面是一段:Android 协同程序:Can';完成工作后返回值,android,kotlin-coroutines,Android,Kotlin Coroutines,在我的android应用程序中,我需要在执行一些长时间的网络操作后返回结果(例如10秒后) 下面是一段: import kotlinx.coroutines.Deferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch GlobalScope.launch(Dispatchers.Main) {
import kotlinx.coroutines.Deferred
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
GlobalScope.launch(Dispatchers.Main) {
lateinit var response: Response<Void>
response = executeOperations.await()
return response
}
错误消息:
'return' is not allowed here
它不是那样工作的。那里不允许您的
返回
,因为您在那些{}
但实际上最好的方法是创建一些方法并处理该响应,而不是返回它。关于你的情况,我有点困惑:
转换:
GlobalScope.launch(Dispatchers.Main) {
lateinit var response: Response<Void>
response = executeOperations.await()
return response
}
GlobalScope.launch(Dispatchers.Main){
lateinit var响应:响应
response=executeOperations.await()
返回响应
}
进入:
GlobalScope.launch(Dispatchers.IO) {
lateinit var response: Response<Void>
response = executeOperations.await()
withContext(Dispatchers.Main){
handleResponse(response)
}
}
GlobalScope.launch(Dispatchers.IO){
lateinit var响应:响应
response=executeOperations.await()
withContext(Dispatchers.Main){
HandlerResponse(响应)
}
}
另外,您的繁重工作不会发生在Dispatchers.Main中,而是发生在Dispatchers.IO中
GlobalScope.launch(Dispatchers.IO) {
lateinit var response: Response<Void>
response = executeOperations.await()
withContext(Dispatchers.Main){
handleResponse(response)
}
}