在移动到下一个活动之前完整地运行一个函数

     2023-04-19     108

关键词:

【中文标题】在移动到下一个活动之前完整地运行一个函数【英文标题】:Run a function in its entirety before moving to next activity 【发布时间】:2019-08-23 02:35:22 【问题描述】:

我想单击一个按钮,该按钮将从 Firebase 中提取一些数据,然后我想转到下一个活动,传递一个包含 Firebase 数据的数组。我仍然无法理解异步代码,我希望有人能用最简单的方法帮助我完成这个任务。

我已经尝试过运行阻塞、挂起功能、等待和异步,但我似乎无法做到正确。这是我的点击监听器:

btn_games_quiz.setOnClickListener 

    listenForQuestions()

    val intent = Intent(this, QuizActivity::class.java)
    intent.putExtra("questionArray", questionArray)
    startActivity(intent)


这里是listenForQuestions:

private fun listenForQuestions()

    val current = LocalDateTime.now()
    val formatter = DateTimeFormatter.ofPattern("MM")
    val formatted = current.format(formatter)
    val currentMonth = QuizActivity.months[formatted.toInt()]

    val ref = FirebaseDatabase.getInstance().getReference("/quizzes/$currentMonth")

    ref.addChildEventListener(object: ChildEventListener 

        override fun onChildAdded(p0: DataSnapshot, p1: String?) 
                val questionItem = p0.getValue(Question::class.java)

                if (questionItem != null) 
                    questionArray += questionItem
                
        

        override fun onCancelled(p0: DatabaseError) 
        

        override fun onChildChanged(p0: DataSnapshot, p1: String?) 
        

        override fun onChildMoved(p0: DataSnapshot, p1: String?) 
        

        override fun onChildRemoved(p0: DataSnapshot) 
        
    )


我们将不胜感激。

【问题讨论】:

【参考方案1】:

尝试使用线程。 新的可运行();

【讨论】:

【参考方案2】:

我建议在协程中运行它。

对于使用协程的异步编程,请查看此链接。 https://kotlinlang.org/docs/reference/coroutines-overview.html

【讨论】:

我知道这可能与协程有关。我被引导到文件,例如您之前链接的文件,但没有成功。无论我似乎在做什么,无论是定义挂起函数、使用 runBlocking 等等,每次当代码到达“onChildAdded”时,它都会继续执行其他操作。我需要做的就是在执行其他任何操作之前执行 onChildAdded,但我似乎做不到。

连续迭代 mongodb 游标(在移动到下一个文档之前等待回调)

】连续迭代mongodb游标(在移动到下一个文档之前等待回调)【英文标题】:Iteratingoveramongodbcursorserially(waitingforcallbacksbeforemovingtonextdocument)【发布时间】:2013-08-0918:34:42【问题描述】:使用mongoskin,我可以做这样的查询,它会返... 查看详情

将数据传递到上一个活动并使用相同的按钮移动到下一个(代码片段)

我有三个活动。让我们说一下activity1,activity2和activity3。我在activity2上有一个按钮,点击该按钮我想将一些数据发送到activity1并转到activity3。我使用以下方法成功地将数据从2传递到1:button1.setOnClickListener(newView.OnClickListener()@Overr... 查看详情

如何在移动到下一个文本框之前强制用户输入有效的电子邮件?

】如何在移动到下一个文本框之前强制用户输入有效的电子邮件?【英文标题】:HowtoforceusertoentervalidEmailbeforemovingtonexttextbox?【发布时间】:2013-10-1508:12:46【问题描述】:我在我的MVC项目中为电子邮件ID和确认电子邮件ID使用2个... 查看详情

视频完成后如何移动到另一个活动?

】视频完成后如何移动到另一个活动?【英文标题】:Howtomovetoanotheractivityafteravideoisfinished?【发布时间】:2021-07-0820:30:31【问题描述】:如果用户在视频播放完毕后返回主屏幕并返回应用程序,我正在尝试增加延迟时间。我希望... 查看详情

JavaFX 在转到下一个方法之前等待动画方法完成

...发布时间】:2016-10-1115:44:24【问题描述】:如何让JavaFX在移动到下一个方法之前等待一个带有动画的方法完成?所以我的代码如下:publicvoidspinWheel()RotateTransitionrotation=newrotat 查看详情

通道被不可恢复地破坏并将被处理

...下一个活动,即谷歌地图。客户被添加到数据库中,但在移动到下一个活动时崩溃。这是我的代码:SignupActivityCustomer.java:i 查看详情

java示例代码_在安卓系统中,让活动等待,然后自己跳到下一个活动

java示例代码_在安卓系统中,让活动等待,然后自己跳到下一个活动 查看详情

在链接到下一页之前播放音频的 HTML 链接

...坐在轮椅上的朋友创建一个程序,他不能说话,只能稍微移动他的头。在传送到下一页之前,我需要一个链接来播放音频文件。<head><script>functionplay()document.getEle 查看详情

用动画悬停后将边框移动到下一个 li

】用动画悬停后将边框移动到下一个li【英文标题】:movebordertonextliafterhoverwithanimation【发布时间】:2017-03-1802:11:53【问题描述】:我创建了一个4li和活动类的导航栏现在我希望当我将鼠标悬停在第二个li上时,我的边框底部会随... 查看详情

提升线程:是不是可以在移动到另一个线程之前限制线程的运行时间

】提升线程:是不是可以在移动到另一个线程之前限制线程的运行时间【英文标题】:Boostthreads:isitpossibletolimittheruntimeofathreadbeforemovingtoanotherthread提升线程:是否可以在移动到另一个线程之前限制线程的运行时间【发布时间】:... 查看详情

当我单击此处注册时,它不会转到下一个活动

】当我单击此处注册时,它不会转到下一个活动【英文标题】:whenIclickonRegisterhere,itdoesnotgotothenextactivity【发布时间】:2016-04-0821:35:15【问题描述】:当我单击“注销”按钮时,它会转到下一个活动,但是,在下一个活动上,当... 查看详情

在android中单击列表活动时将列表项的静态图像和文本发送到下一个活动

...android中单击列表活动时将列表项的静态图像和文本发送到下一个活动【英文标题】:Sendstaticimageandtextoflistitemtothenextactivitywhileclickonlistactivityinandroid【发布时间】:2011-09-2500:12:13【问题描述】:我有一个列表活动,我在其中连续... 查看详情

imageJ 上的宏,循环不移动到下一个 ROI

】imageJ上的宏,循环不移动到下一个ROI【英文标题】:MacroonimageJ,loopdoesnotmovetothenextROI【发布时间】:2021-12-1900:19:44【问题描述】:我正在尝试裁剪图像中的部分,然后对所有部分进行平均。我在imageJ上回收我以前的宏。以前的... 查看详情

python循环为循环的类,它递归调用一个函数直到满足条件,然后移动到下一个函数并调用(代码片段)

查看详情

如何通过单击 QPushButton 移动到下一个选项卡(或导航到另一个选项卡)?

】如何通过单击QPushButton移动到下一个选项卡(或导航到另一个选项卡)?【英文标题】:Howtomovetonexttab(ornavigatetoanothertab)ontheclickofaQPushButton?【发布时间】:2020-05-1919:20:31【问题描述】:更准确地说,我正在寻找一种将功能分配... 查看详情

如何从一个活动中获取edittext值到下一个活动的recyclerview?

】如何从一个活动中获取edittext值到下一个活动的recyclerview?【英文标题】:Howtofetchedittextvaluefromoneactivitytorecyclerviewofnextactivity?【发布时间】:2020-11-2408:24:43【问题描述】:我正在尝试从一项活动中获取edittext值,并在recycleview... 查看详情

添加单击侦听器以映射标记列表并将数据发送到下一个活动?

】添加单击侦听器以映射标记列表并将数据发送到下一个活动?【英文标题】:AddingclickListenertomapmarkersListandsenddatatonextactivity?【发布时间】:2021-04-0311:07:10【问题描述】:我在一个应用程序中工作,我需要一次添加超过1个与其... 查看详情

在discord.py中发送X消息之前,如何一个接一个地运行多个discord令牌?

】在discord.py中发送X消息之前,如何一个接一个地运行多个discord令牌?【英文标题】:HowcanIrunmultiplediscordtokensonebyoneuntilitsendsXmessagesindiscord.py?【发布时间】:2021-12-1114:12:15【问题描述】:我正在编写一些代码,使用令牌向X人发... 查看详情