android - Kotlin 等待函数完成然后完成代码
问题描述
在我的代码中,我有 2 个更新全局变量的函数。当我打电话给他们时(在 onCreate 之上)
像这样:
override fun onCreate(savedInstanceState: Bundle?) {
userManager = UserManager(this)
observeEmail()
observePassword()
代码继续,我想等待这两个函数完成然后继续我的代码我该怎么做?
如您所见,首先是来自 onCreate 的打印消息,然后是来自 onCreate 打印之前的函数
解决方案
在我看来,observe() 方法中的第二个参数是回调。
我的建议是这样的:
在类的最顶端,创建一个名为 callBack 的类全局变量,如下所示:
callBack:(()->Unit)?=null
然后,在您的 onCreate() 内部,将您希望在 observeEmail 之后发生的所有事情都推送到一个庞大的例程中,并让 callBack 获取该例程的值。像这样:
callBack={doEverything()
doMore()
doOtherStuff()
}
现在回到 .observe() 的第二个参数,您知道打印电子邮件提示的地方。在该打印行下,添加以下内容:
callBack?.invoke()
现在一切都将等到 observe() 返回结果。
推荐阅读
- javascript - 如何通过保存以前的值将对象呈现为 HTML?
- javascript - K6 负载测试 - 从单独的文件添加到趋势
- javascript - 为什么将 n 附加到数字(以创建 BigInt)会导致错误?
- r - 使用 For 循环 R 基于其他数据框的单元格创建新数据框
- java - 从表中删除子实体也会删除其表中的父实体
- java - 仅使用 reduce 和 lambda 来解释 Java Stream map 函数
- apache-spark - 从执行任务中停止整个 Spark 作业?
- python - 为什么在指定 Dsize 与 fx/fy 时 OpenCV Resize 会给出不同的像素值?
- laravel - Laravel Livewire 发出事件未触发
- c++ - 有没有办法让我在 C++ 游戏中保持恒定的速度?