安卓在子线程中实现更新UI界面的三种方法 Handler+Message、runOnUiThread、控件.post()

这篇具有很好参考价值的文章主要介绍了安卓在子线程中实现更新UI界面的三种方法 Handler+Message、runOnUiThread、控件.post()。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.说明

安卓中UI线程为主线程,更新UI界面必须在主线程中进行,在子线程中实现更新UI界面的三种方法:Handler、RunOnUiThread、控件.post()

2.1 Handler

(1)定义handler
private Handler handler=new Handler(new Handler.Callback() {
        @Override
        public boolean handleMessage(@NonNull Message message) {

            switch (message.what){
                case 0:
    	   String S=(String)msg.obj;
                    Btn.setText(S);
                    break;
                case 1:
                    break;
                default:break;
            }

            return false;
        }
    });
(2)使用
Message msg=new Message();
msg.what=0;
msg.obj="Finish";//此处也可以传递对象
handler.sendMessage(msg);
<2>RunOnUiThread
 runOnUiThread(new Runnable() {
            @Override
            public void run() {
                   //doSomething;
            }
        });

2.2 控件.post()

 TextView.post(new Runnable() {
                            @Override
                            public void run() {
                                TextView.setText("Fi");
                            }
                        });
                    }

2.3 在子线程中使用 runOnUiThread

 runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        //doSomething...
                    }
                });

文章来源地址https://www.toymoban.com/news/detail-520434.html

到了这里,关于安卓在子线程中实现更新UI界面的三种方法 Handler+Message、runOnUiThread、控件.post()的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (详解)vue中实现主题切换的三种方式

    目录 一、背景 二、实现思路  方法1:定义全局的CSS变量  方法2:切换已定义好的css文件  方法3:切换顶级CSS类名 (需使用css处理器,如sass、less等) 在我们开发中我们会遇到像是需要切换程序风格、 主题切换 啦这种应用场景。 参考大佬博客!!! vue中实现 ‘换肤 / 切换样

    2024年02月08日
    浏览(32)
  • React 中实现组合键操作的三种方法

    在 React 中实现组合键可以使用以下方式: 使用 KeyboardEvent.getModifierState() 方法 : 使用 Mousetrap 库 : 使用 ref 和原生事件处理 :

    2024年04月13日
    浏览(27)
  • 【工作记录】mysql中实现分组统计的三种方式

    前言 实际工作中对范围分组统计的需求还是相对普遍的,本文记录下在mysql中通过函数和sql完成分组统计的实现过程。 数据及期望 比如我们获取到了豆瓣电影top250,现在想知道各个分数段的电影总数. 表数据如下: 期望结果: 实现方案 主要思路是根据score的范围设置别名,然

    2024年02月13日
    浏览(41)
  • 程序设计的三种结构-C中实现其的6条语句

    C语言设计出来就是为了解决现实中存在的问题,但是现实中问题大多较为复杂,如何描述问题也成为了一个重要的问题。将这些众多的问题核心找出来,我们发现只需要使用三种基本的结构包括:顺序结构,分支结构,循环结构就可以描述那些简单的问题,至于更为复杂的。

    2024年02月06日
    浏览(40)
  • 线程创建的三种方式

    目录 1. Thread类 2. Runnable接口 3. Callable接口 4. 线程的生命周期 新建  就绪 运行 阻塞 等待 结束 继承Thread类的方式创建线程 定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务 创建Thread类的子类,即创建了线程对象 调用线程对象的

    2024年02月09日
    浏览(32)
  • C++创建线程的三种方式

    早期的C++并不支持多线程的创建,如果要创建多线程,依赖的是系统提供的一些方法(例如linux的 pthread). 从C++11以后开始,提供了std::thread线程库,因此我们可以创建std::thread类对象的方式来创建线程。创建的方式主要有三种: 通过函数指针 通过函数对象 通过lambda函数 使用

    2024年02月16日
    浏览(33)
  • Java 实现多线程的三种方式

    1、三种方法的介绍和比较 1、1三种方式得介绍 1、继承Thread类 2、实现Runnable接口 3、实现Callable接口 1、2三种方法的介绍和比较 1、2、1、实现Runnable接口相比继承Thread类有如下优势 1、增强程序的健壮性,将业务逻辑与线程调度分离 2、线程池只能放入实现Runable或Callable类线程

    2024年02月02日
    浏览(38)
  • Java 创建多线程的三种方法

    在Java中创建多线程,往往都要通过Thread类来实现,今天学习下Java中创建多线程的三种方法[1]。 通过继承 Thread类 实现多线程。 主要方法: 1.void run(), 线程开启后,方法将被调用执行 2.void start(), 使此线程开始执行, Java虚拟机会调用run()方法 实现步骤: 1.定义类,继承 Thread类

    2024年02月05日
    浏览(46)
  • Java 多线程实现的三种方式

    Java 多线程实现方式主要有三种:继承 Thread 类、实现 Runnable 接口、使用 ExecutorService、Callable、Future 实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。 1、继承 Thread 类实现多线程 继承 Thread 类的方法尽管被我列为一种多线程

    2023年04月27日
    浏览(43)
  • Java并发(三)----创建线程的三种方式及查看进程线程

    例如: 输出 注意:这里通过 @Slf4j 注解打印的日志 把【线程】和【任务】(要执行的代码)分开 Thread 代表线程 Runnable 可运行的任务(线程要执行的代码) 例如: 输出 Java 8 以后可以使用 lambda 精简代码 小结 方法1 是把线程和任务合并在了一起,方法2 是把线程和任务分开

    2023年04月24日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包