【问题标题】:How to initialize okHttp's MockServer() in a repository?如何在存储库中初始化 okHttp 的 MockServer()?
【发布时间】:2019-03-22 06:56:15
【问题描述】:

Server.kt(是一个将返回用户列表的模拟服务器) https://github.com/shalbert94/androidinterview/blob/master/server/src/main/java/com/jobrapp/server/Server.kt

由于某种原因,在我的存储库 (https://github.com/shalbert94/androidinterview/blob/master/app/src/main/java/com/jobrapp/androidinterview/MockServerRepository.kt) 中调用的 val server = Server() 抛出: Unable to start activity ComponentInfo{com.jobrapp.androidinterview/com.jobrapp.androidinterview.MainActivity}: android.os.NetworkOnMainThreadException

问题似乎源于调用MockWebServer()start() 方法,该方法在Serverinit 块中调用。如何在我的存储库中初始化 Server 而不会触发 NetworkOnMainThreadException?

【问题讨论】:

    标签: android okhttp android-mvvm mockwebserver


    【解决方案1】:

    感谢 Kotlin 协程!

    fun getUsers(liveData: MutableLiveData<List<User>>) = launch {
            val server = async{ Server() }
    
            server.await().getUsers().enqueue(object: Callback<List<User>> {...})
        }
    

    【讨论】:

      猜你喜欢
      • 2019-09-08
      • 2016-07-30
      • 2022-11-08
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 2018-03-14
      • 2017-05-11
      • 2019-01-09
      相关资源
      最近更新 更多