Android 协同程序:Can';完成工作后返回值

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) {

在我的android应用程序中,我需要在执行一些长时间的网络操作后返回结果(例如10秒后)

下面是一段:

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)
               }
            }