Android 无法通过Kotlin执行改装同步操作

Android 无法通过Kotlin执行改装同步操作,android,kotlin,retrofit2.6,Android,Kotlin,Retrofit2.6,在我的android应用程序中: app/build.gradle implementation 'com.squareup.okhttp3:logging-interceptor:3.8.0' implementation "com.squareup.retrofit2:converter-gson:2.6.0" implementation "com.squareup.retrofit2:retrofit:2.6.0" 在我的界面中: import retrofit2.Response i

在我的android应用程序中:

app/build.gradle

implementation 'com.squareup.okhttp3:logging-interceptor:3.8.0'
implementation "com.squareup.retrofit2:converter-gson:2.6.0"
implementation "com.squareup.retrofit2:retrofit:2.6.0"
在我的界面中:

import retrofit2.Response
import retrofit2.http.GET
import retrofit2.http.Query


interface MyRestClient {

    @GET("/event")
    suspend fun getEvents(@Query("orgn") base: Int, @Query("event") quote: Int): Response<List<Event>>
}
@GET("/event")
    suspend fun getEvents(@Query("orgn") base: Int, @Query("event") quote: Int): Response<List<Event>>
但我在这一行得到编译错误:

val call: Call<*> = myRestClient.getEvents(orgn, event)   
错误是:

Type mismatch: inferred type is Response<List<Event>> but Call<*> was expected
您正在MyRestClient接口中返回响应类型,但需要在TransportService中调用

在TransportService类中,将val调用的参数类型从call更改为Response


此外,由于您希望同步执行此方法,因此可能不需要getEvents方法上的suspend修饰符

错误消息告诉您问题所在

val call: Call<*> = myRestClient.getEvents(orgn, event)   
以下是我的解决方案:

 viewModelScope.launch(Dispatchers.Main) {
            Debug.d(TAG, "step_1")
            TransportService.getEvents(100, 200)
            Debug.d(TAG, "step_2")
            TransportService.getEvents(300, 400)
            Debug.d(TAG, "step_3")
            TransportService.getEvents(500, 600)
            Debug.d(TAG, "step_4")
        }
in-TransportService.kt

suspend fun getEvents(
            orgn: Int,
            event: Int
        ): Response<*> {
            return  waitressCallRestClient.getEvents(orgn, event)
        }
在接口中:

import retrofit2.Response
import retrofit2.http.GET
import retrofit2.http.Query


interface MyRestClient {

    @GET("/event")
    suspend fun getEvents(@Query("orgn") base: Int, @Query("event") quote: Int): Response<List<Event>>
}
@GET("/event")
    suspend fun getEvents(@Query("orgn") base: Int, @Query("event") quote: Int): Response<List<Event>>
因为我使用了改装2.6和暂停功能,因此步骤2仅在完成TransportService.GetEvents100200后打印。 步骤2仅在完成TransportService.getEvents300、400等之后打印


这就是我需要的。我已同步调用getEvents

我添加了我的答案
@GET("/event")
    suspend fun getEvents(@Query("orgn") base: Int, @Query("event") quote: Int): Response<List<Event>>