在我的 Android 应用程序中,我使用AppAuth通过 OpenID 连接端点对用户进行身份验证,所以我正在执行一堆异步调用,当最后一个调用返回时,我使用 okhttp 来获得最终结果,我想要在我的活动的 UI 中显示它,如下所示:
authService.performTokenRequest(
authResponse.createTokenExchangeRequest()
) { tokenResponse: TokenResponse?, tokenException: AuthorizationException? ->
if (tokenResponse != null) {
authState.performActionWithFreshTokens(authService) { accessToken, _, ex ->
if (accessToken != null) {
val url = ...
val request = ...
http.newCall(request).enqueue(object: Callback {
override fun onFailure(call: Call?, e: IOException?) {...}
override fun onResponse(call: Call?, response: Response?) {
if (response != null) {
this@MainActivity.runOnUiThread {
textView.text = response.body()!!.string()
}
}
}
})
}
}
}
}
但是当我尝试更新我的文本视图时,我得到了以下异常:
android.os.NetworkOnMainThreadException
当我尝试删除 时runOnUiThread
,我得到另一个异常,上面写着:“只有创建视图层次结构的原始线程才能触及它的视图”
我不明白。我该怎么办?