当前位置: 首页 > 知识库问答 >
问题:

如何阻止while循环在android studio中破坏模拟器?[已关闭]

郤立果
2023-03-14

编辑问题以包括所需的行为、特定问题或错误,以及再现问题所需的最短代码。这将帮助其他人回答这个问题。

我正在做一个时间和日期的东西,我需要自动更新,所以我使用了一个while循环。不幸的是,它一直使模拟器崩溃。我认为这是由于堆栈溢出,但我不确定。我尝试在每个循环之间添加一个小延迟(大约1s),但仍然不起作用。我可以做些什么来不断更新时间/日期,而不会使应用程序崩溃?

以下是while循环代码:

        dateandtime.setText(currentDateTimeString);
        while (true) {
            final Handler handler2 = new Handler();
            handler2.postDelayed(new Runnable() {
                @Override
                public void run() {
                    // Do something after 5s = 1000ms
                    dateandtime.setText(currentDateTimeString);
                }
            }, 1000);
        }    

共有1个答案

陆洛城
2023-03-14

我相信你正在努力实现的目标已经在这里得到了回答。您可能应该使用计时器。

使用而(true){...}将阻塞主线程,并且您的应用程序无法运行任何其他后台任务(例如响应用户输入)。您可以在应用程序变得无响应时观察到这一点。

 类似资料:
  • 我正在制作一个时间和日期的东西,我需要自动更新,所以我使用了一个while循环。不幸的是,它一直使模拟器崩溃。我认为这是由于堆栈溢出,但我不确定。我尝试在每个循环之间添加一个小延迟(大约1秒),但它仍然不起作用。我能做些什么来继续更新时间/日期而不使应用程序崩溃? 以下是while循环代码:

  • 问题内容: 我需要在Python程序中模拟循环。不幸的是,以下简单的代码不起作用: 代替“ 1,2,3,done”,它输出以下输出: 为了捕获“停止迭代”异常并正确中断while循环,我该怎么办? 为什么需要这种东西的一个示例在下面显示为伪代码。 状态机: 问题答案: 我不确定你要做什么。你可以像这样实现一个循环: 要么: 你在尝试使用do while循环来打印列表中的内容在做什么?为什么不使用:

  • 问题内容: 以下示例在Node.js书中给出: 解释了while循环为何阻止执行时,作者说: 节点将永远不会执行超时回调,因为事件循环卡在了循环中,而循环在第7行开始了,因此永远不会给它处理超时事件的机会! 但是,作者没有解释为什么这是在事件循环的背景下发生的,还是在幕后真正发生了什么。 有人可以详细说明吗?为什么节点卡住?以及如何在保留控制结构的同时更改上述代码,以使事件循环不会被阻塞,并且代码

  • 行,并且while循环保持无限运行。但现在代码做了我想做的,它停止并计算新用户输入的次数,只要输入错误(我在输入正确值之前输入了3、6、7个错误值,它每次都起作用)。 我的问题是,扫描器如何停止无限循环?扫描仪是否会导致计算机在继续操作之前等待用户输入,因此它会继续对其进行评估,而不是无限地打印出“对不起,这不是一个有效的输入...”?我只想确定我知道为什么它停止了。

  • 已安装虚拟盒,模拟器已停止工作。在做了一些研究之后,我的猜测是它以某种方式破坏了我的Hyper-V。它说: 无法启动模拟器模拟器无法启动,因为虚拟机监控程序没有运行。可能的原因是启用了硬件辅助虚拟化。检查计算机的BIOS,确保启用了硬件辅助虚拟化和硬件辅助数据执行保护功能。 我做到了。一切都按照它们应该的样子设置好了。我按照这个指南卸载了Virtualbox,包括它的驱动程序:https://do

  • 问题内容: 我正在尝试制作一个具有if / elif语句的函数,并且我希望if中断while循环。该函数用于文本冒险游戏,是/否的问题。到目前为止,这是我想出的。 现在我不确定我是否正确使用该功能,但是当我尝试一下时,它说我不能中断该功能。因此,如果有人可以帮助我解决该问题,并且如果函数和调用函数本身的格式错误,则可以帮助我,将不胜感激。 问题答案: 您可以例外处理: 这样一遍又一遍地循环,但是在