对话框弹出并返回活动

问题描述 投票:-1回答:2

我是Kotlin的新手,我有第一个登录活动,第二个活动有回收视图。 recicle视图的数据来自http3方法。对不起,我的英语不好。当我有代码404时,如何显示dialogPopUp,并在之前的一次登录活动中返回?

android android-activity kotlin dialog
2个回答
1
投票

如果您使用enqueue并且显示对话框是一个UI任务,则需要在UI线程上运行Okhttp回调在后台线程上执行。

在您的情况下,您可以通过使用runOnUiThread运行对话框代码轻松完成此操作。

runOnUiThread {
    dialogPopUp("Error parameters", mContext ).showDialog()
}

正如你在其他区块中所做的那样。您还可以使用在UI线程上创建的Handler来实现此目的。

更新:仔细看看你的代码,我意识到你通过使用fetchJson函数在后台线程中运行doAsync。当您在enqueue上使用OkHttp.Call时,您基本上将其发送到后台线程上执行,因此无需使用doAsync。如果删除doAsync,则不再需要使用runOnUiThread,因为回调将在UI线程上执行。


0
投票
Can't create handler inside thread that has not called Looper.prepare()

这基本上意味着在调用此代码时需要使用UI线程。需要使用UI线程来显示对话框。

你可以做:

runOnUiThread {
    dialogPopUp("Error parameters", mContext ).showDialog()
}
© www.soinside.com 2019 - 2024. All rights reserved.