对话框弹出并返回活动
Posted
技术标签:
【中文标题】对话框弹出并返回活动【英文标题】:Dialog Pop Up and return activity 【发布时间】:2019-07-31 11:38:06 【问题描述】:我是 Kotlin 的新手,我的第一个活动是登录,第二个活动是回收视图。 recicle view的数据取自http3方法。 对不起,我的英语不好。 当我有代码 404 时如何显示 dialogPopUp 并返回上一个登录活动?
【问题讨论】:
【参考方案1】:如果您使用 enqueue 并且显示对话框是 UI 任务,OkHttp 回调将在后台线程上执行,因此它需要在 UI 线程上运行。
在您的情况下,您可以通过使用runOnUiThread
运行对话代码轻松地做到这一点。
runOnUiThread
dialogPopUp("Error parameters", mContext ).showDialog()
就像您在 else 块中所做的那样。 您也可以通过使用在 UI 线程上创建的 Handler 来实现此目的。
更新:仔细查看您的代码,我意识到您正在使用doAsync
函数在后台线程中运行fetchJson
。当您在OkHttp.Call
上使用enqueue
时,您基本上是将其发送到后台线程上执行,因此无需使用doAsync
。
如果您删除 doAsync
,则无需再使用 runOnUiThread
,因为回调将在 UI 线程上执行。
【讨论】:
【参考方案2】:Can't create handler inside thread that has not called Looper.prepare()
这基本上意味着您在调用此代码时需要使用 UI 线程。 UI 线程将需要用于显示您的对话框。
你可以这样做:
runOnUiThread
dialogPopUp("Error parameters", mContext ).showDialog()
【讨论】:
以上是关于对话框弹出并返回活动的主要内容,如果未能解决你的问题,请参考以下文章