我的咖啡怠速資源不工作 - 它編譯和運行,但不再等待足夠長的時間從'網絡返回結果。你怎麼得到一個Idlingresource工作在Kotlin與協程
- 開始https://github.com/chiuki/espresso-samples/tree/master/idling-resource-okhttp
- 轉換的主要活動科特林 - 測試(這仍然是在Java)仍然OKHttpIdlingResource工作
- 轉換爲ANKO協同程序調用,而不是retrofit.enqueue的 - 沒有測試更長的作品。
這裏是MainActivity新代碼的全部
import android.app.Activity
import android.os.Bundle
import android.widget.TextView
import kotlinx.coroutines.experimental.android.UI
import kotlinx.coroutines.experimental.async
import org.jetbrains.anko.coroutines.experimental.bg
import retrofit2.Retrofit
import retrofit2.converter.moshi.MoshiConverterFactory
class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
doCallAsync()
}
private fun doCallAsync() = async(UI) {
val user = bg { getUser() }
val name = user.await().name
val nameView = findViewById(R.id.name) as TextView
nameView.text = name;
}
private fun getUser(): User {
val retrofit = Retrofit.Builder()
.baseUrl("https://api.github.com/")
.addConverterFactory(MoshiConverterFactory.create())
.client(OkHttpProvider.getOkHttpInstance())
.build()
val service = retrofit.create(GitHubService::class.java)
val response = service.getUser("chiuki").execute().body()
return response!!
}
}
「無論什麼執行機制BG使用」 - 這是當然的問題。不幸的是,我們使用的是Follestad材質對話框而不是DialogFragment,因此我們不能輕鬆(afaik)檢查dialogfragment的存在(例如進度對話框) – nAndroid