我是Kotlin的新手,我的第一项活动是登录,第二项活动是回收视图。 Recicle视图的数据取自http3方法。 对不起,我的英语不好。 当我拥有代码404并返回上一个登录活动时,如何显示一个dialogPopUp?
答案 0 :(得分:1)
如果使用enqueue,并且在对话框中显示对话框是UI任务,则在后台线程上执行OkHttp回调,因此需要在UI线程上运行它。
对于您而言,您可以通过使用runOnUiThread
运行对话框代码来轻松地做到这一点。
runOnUiThread {
dialogPopUp("Error parameters", mContext ).showDialog()
}
就像您在else块中所做的一样。 您也可以使用在UI线程上创建的Handler来实现此目的。
更新:仔细查看您的代码,我发现您正在使用fetchJson
函数在后台线程中运行doAsync
。在enqueue
上使用OkHttp.Call
时,基本上是将其发送到后台线程上执行,因此无需使用doAsync
。
如果删除doAsync
,则不再需要使用runOnUiThread
,因为回调将在UI线程上执行。
答案 1 :(得分:0)
Can't create handler inside thread that has not called Looper.prepare()
这基本上意味着您在调用此代码时需要使用UI线程。 UI线程将需要用于显示对话框。
您可以这样做:
runOnUiThread {
dialogPopUp("Error parameters", mContext ).showDialog()
}