首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

调用了.setText(),但在while(true)循环中屏幕未更新

问题描述:调用了.setText(),但在while(true)循环中屏幕未更新。

回答:

这个问题可能是由于在while(true)循环中没有给屏幕足够的时间来更新导致的。在循环中频繁地调用.setText()方法可能会导致屏幕无法及时更新,因为UI更新通常是在主线程中进行的,而while循环可能会阻塞主线程。

解决这个问题的方法是使用异步任务或者线程来执行while循环中的操作,以避免阻塞主线程。可以使用Android中的Handler、AsyncTask、Thread等机制来实现异步操作。

另外,也可以考虑使用定时器来定时更新屏幕,而不是在while循环中频繁调用.setText()方法。定时器可以使用Android中的Timer类或者Handler的postDelayed()方法来实现。

在处理UI更新时,还可以考虑使用invalidate()方法来强制刷新视图,以确保屏幕能够及时更新。

总结一下,解决这个问题的关键是避免在while循环中频繁调用.setText()方法,使用异步任务或者线程来执行操作,并且考虑使用定时器或者强制刷新视图的方法来更新屏幕。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

NodeJS模块研究 - process

如果异常捕获,则会一直从底向事件循环冒泡。如是冒泡到事件循环的异常没被处理,那么就会导致当前进程异常退出。...比如前一段代码中,如果出现未被捕获的 promise 回的异常,那么就会触发 warning 事件。 如何处理进程退出?...("utf8"); process.stdin.on("readable", () => { let chunk; while ((chunk = process.stdin.read...那么,如果我们的事件占用了很多 cpu 时间,那么之后的事件就要等待非常久。所以,nodejs 的一个编程原则是尽量缩短每一个事件的执行事件。...但在 nodejs 中请使用 nextTick 而不是 setTimeout,前者效率更高,并且严格来说,两者创建的事件在任务队列中顺序并不一样(请看前面的代码)。

1.5K20
  • 关于“Python”的核心知识点整理大全33

    在主循环中,我们将使用这个编组 在屏幕上绘制子弹,以及更新每颗子弹的位置: alien_invasion.py import pygame from pygame.sprite import...为此,我们需要检测这样的条件,即表示子弹的rect的bottom属性为零,它表明子弹已穿过 屏幕顶端: alien_invasion.py # 开始游戏主循环 while True: gf.check_events...我们使用了方法 copy()来设置for循环(见1),这让我们能够在循环中修改bullets。我们检查每颗子弹,看看它 是否已从屏幕顶端消失(2)。如果是这样,就将其从bullets中删除(见3)。...alien_invasion.py中的while循环又变得很简单了: alien_invasion.py # 开始游戏主循环 while True: 1 gf.check_events(ai_settings...主 循环检查玩家的输入(见1),然后更新飞船的位置(见2)和所有消失的子弹的位置(见3)。 接下来,我们使用更新后的位置来绘制新屏幕(见4)。

    13610

    异步,同步,阻塞,非阻塞程序的实现

    如果是同步,线程会等待接受函数的返回值(或者轮函数结果,直到查出它的返回状态和返回值)。如果是异步,线程不需要做任何处理,在函数执行完毕后会推送通知或者调用回函数。...线程在同步调用下,也能非阻塞(同步轮非阻塞函数的状态),在异步下,也能阻塞(调用一个阻塞函数,然后在函数中调用回,虽然没有什么意义)。 下面,我会慢慢实现一个异步非阻塞的sleep。...,当状态更新后,在下次轮会触发生成器继续执行后面的动作。...上面的代码中,在一个while环中timer的状态。由于timer存在于wait中。所以需要把timer“提取”出来。...在my_sleep结束时,调用回函数。使得任务继续进行。 也就是说,在每个要处理阻塞的地方,都人为的把函数切成三个部分: 1. 执行函数前半部 2. 执行新线程,把后半部作为回函数传入。

    7.6K10

    深入理解Node.js的进程与子进程

    如果异常捕获,则会一直从底向事件循环冒泡。如是冒泡到事件循环的异常没被处理,那么就会导致当前进程异常退出。...不推荐直接使用 process.exit(),这会导致事件循环中的任务直接不被处理,以及可能导致数据的截断和丢失(例如 stdout 的写入)。...("utf8");process.stdin.on("readable", () => { let chunk; while ((chunk = process.stdin.read())...那么,如果我们的事件占用了很多 cpu 时间,那么之后的事件就要等待非常久。所以,nodejs 的一个编程原则是尽量缩短每一个事件的执行事件。...但在 nodejs 中请使用 nextTick 而不是 setTimeout,前者效率更高,并且严格来说,两者创建的事件在任务队列中顺序并不一样(请看前面的代码)。

    2K21

    五年Android开发,让我“刻骨铭心”的那些坑

    对于这种问题只能尽量不要在Activity的系统回方法中做资源初始化和释放的操作,比如涉及到IO操作的情况,在使用的时候才打开,使用完后立即关闭; 透明主题导致Activity生命周期回的变化:...hide、show被调用时,系统并不会调用Fragment的生命周期回; 解决方案:不同Fragment之间切换时,主动调用各个Fragment的生命周期回; 2 使用不当造成的坑...,程序在不同的设备中运行时,会根据设备的分辨率和屏幕密度去从与之分辨率匹配的资源文件夹中取图片,如果没有对应分辨率的文件夹,则从相近分辨率的文件夹中取,但图片会被拉伸到当前设备屏幕的宽高,所以会存在图片被放大或者缩小的问题...: 问题现象:依赖包频繁更新,因为AS编译有缓存,每次更新都需要修改依赖包的版本号,特别麻烦,特别是依赖关系比较复杂的情况下; 解决方案:在AS中,如果你想动态同步一个依赖包的更新,可以在依赖包的最后面写上...通过反射访问方法和字段的效率大不一样: 问题现象:程序运行卡、慢; 原因分析:在一个循环中使用到了反射,并且是调用的反射方法,改成反射字段后,卡、慢的现象得到明显的改善; 解决方案:通过反射修改或者获取类中的某个属性时

    1.5K40

    【Java】循环语句for、while、do-while

    专栏介绍 【Java】 目前主要更新Java,一起学习一起进步。 本期介绍 本期主要介绍循环语句for、while、do-while 文章目录 1....1.1 循环概述 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环 体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false ,从而结束...while循环输出10次HelloWorld while循环计算1-100之间的和 1.4 循环语句3--do...while do...while 循环格式 执行流程 执行顺序...③具体执行的语句 ④循环后,循环变量的变化情况 输出10次HelloWorld do...while 循环的特点:无条件执行一次循环体,即使我们将循环条件直接写成 false ,也依然会...扩展知识点 2.1 死循环 死循环: 也就是循环中的条件永远为 true ,死循环的是永不结束的循环。例如: while(true){} 。

    6.8K10

    关于“Python”的核心知识点整理大全30

    这个游戏由一个while循环(见3)控制,其中包含一个事件循环以及管理屏幕更新的代码。 事件是用户玩游戏时执行的操作,如按键或移动鼠标。...6处调用了pygame.display.flip(),命令Pygame让最近绘制的屏幕可见。在这里,它在每次 执行while循环时都绘制一个空屏幕,并擦去旧屏幕,使得只有新屏幕可见。...在我们移动游戏元 素时,pygame.display.flip()将不断更新屏幕,以显示元素的新位置,并在原来的位置隐藏元素, 从而营造平滑移动的效果。...while True: # 监听键盘和鼠标事件 --snip-- # 每次循环时都重绘屏幕 2 screen.fill(bg_color) # 让最近绘制的屏幕可见 pygame.display.flip...创建屏幕时(见2),使用了ai_settings的属性 screen_width和screen_height;接下来填充屏幕时,也使用了ai_settings来访问背景色(见3)。

    11910

    从一个超时程序的设计聊聊定时器的方方面面

    对于不同的引擎,可能有一些常规代码基本是定时、自动插入主线程的,例如浏览器引擎,过一段都要渲染页面,渲染代码是每桢必有的;又如一些游戏引擎,本身有loop机制,在每个循环中都要重绘屏幕。...在小游戏中也实现这个接口。...卡顿对象是一种视觉上的错觉,是屏幕刷新迟钝了,不一定是屏幕刷新,也可能是要刷新的数据没有被及时更新。...通过将超时时间设置为0,fn将在下一代循环中被执行。 综上所述,刷新屏幕UI,使用requestAnimationFrame是先选。...例如,在H5开发中,某个事件先发生在子元素,然后冒泡到父元素,即子元素的事件回函数,会早于父元素的事件回函数触发。

    1.4K20

    C++游戏开发:实现2D3D游戏逻辑和渲染

    更新屏幕显示 SDL_RenderPresent(renderer);}while (isRunning) { // ......SDL_RenderClear(renderer); // 绘制游戏对象 SDL_RenderCopy(renderer, playerTexture, nullptr, &playerRect); // 更新屏幕显示...在主循环中,我们不断更新小球的位置,并通过碰撞检测函数checkCollision来判断小球是否与窗口边界发生碰撞。若发生碰撞,就改变小球的移动方向。最后,我们在渲染器上绘制小球并更新显示。...SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit(); return 0;}这个示例代码使用了...在上面的代码中,我们实现了一个Player类来管理玩家飞船的位置和更新逻辑。在游戏循环中,我们通过处理SDL事件来响应玩家输入,并更新飞船的位置。

    1.2K10

    深度讲解Java多线程开发—电子表项目实现

    首先获取到修改的时间,然后利用break跳出主线程的循环,从而结束主线程的运行,之后将已经读取到的修改的时间在显示时间的标签中进行显示,同时开启修改后继续进行时间运行的threadAmend线程,并且每一秒更新一次...threadAmend线程 threadAmend = new Thread(new Runnable() { @Override public void run() { while...} }); 5、线程同步实现秒表功能 在修改时间的同时,会设定进行秒表运行的threadSecond线程,该线程的使用是在点击“启动秒表”按钮之后启动该线程,同时在后台开始计时,每秒对数据更新一次...暂停”按钮中添加事件,在点击“暂停”之后可以将threadSecond暂停,同时此按钮变成“继续”,在点击继续之后,threadSecond线程会继续执行,直到点击了“停止计时”之后,该线程将会跳出循环中止...{ //在每次开启秒表时,将数据初始化为0 hourSecond = 0; minuteSecond = 0; secondSecond = 0; while

    70940

    关于“Python”的核心知识点整理大全14

    在前一个示例中,我们将条件测试直接放在了while语句 中,而在这个程序中,我们使用了一个标志来指出程序是否处于活动状态,这样如果要添加测试 (如elif语句)以检查是否发生了其他导致active变为False...7.2.4 使用 break 退出循环 要立即退出while循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用 break语句。...然而,要记录大量的用户和信息, 需要在while环中使用列表和字典。 for循环是一种遍历列表的有效方式,但在for循环中不应修改列表,否则将导致Python难以 跟踪其中的元素。...在这个循环中,3处的函数pop()以每次一个的方式从列表 unconfirmed_users末尾删除验证的用户。...验证用 户列表越来越短,而已验证用户列表越来越长。

    12210
    领券