对话框弹出并返回活动

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()

【讨论】:

以上是关于对话框弹出并返回活动的主要内容,如果未能解决你的问题,请参考以下文章

Java SWing中如何通过双击使子对话框从父窗口中弹出并嵌入到父窗口中?

QProgressDialog 在暂停期间不绘制

我如何从MainActivity的弹出登录到另一个活动

jquery-1.4.2.js怎样弹出对话框

从带有结果的对话框或活动中返回

.NET winform 弹出对话框,如何传递参数并且在关闭对话框时返回值?