zoukankan      html  css  js  c++  java
  • 动态更新UI的方式

    1. TimerTask 和 timer连用:

    这里主要是实现倒计时,

    TimerTask 里面有方法runOnUiThread,在这个方法里面调用timer cancel()停止倒计时,同样更新UI也是在这里实现的

    2.使用looper更新UI界面

    这里主要是随时将处理后的数据交给UI更新,这时就要重新开启一个线程来更新UI,android 提供了handler机制来实现这种通信。

    在Main线程里面新开一个线程

    Handler  handler=  newHandler(){

      @Override

      public void handleMessage(Message msg){

        super.handleMessage(msg);

        if(msg.what ==1){

           textview.setText("更新后")

        }

      }

    };

    final Thread looperThread = new Thread(new Runable(){

      @Override

      public void run(){

      Message message = new Message();

      message.what =1;

      handler.sendMessage(message);

      }

    });

    在要触发更新的地方调用looperThread.start();

    3. Handler + Runnable实现:

    Runnable update_runnable = new Runnable(){

        @Override

        public void run(){

          handler.post(update_runnable);

        }

    }

    Handler.post(update_runnable);

    总结下:

    1. 如果是要传递状态值等信息的,就用handler+thread。

    2. 如果只是更新UI,可以用Handler + runnable实现。

    3. 如果是倒计时,就用TimeTask + Timer去实现。

  • 相关阅读:
    如何下载无水印的抖音视频?
    @valid和自定义异常
    Centos7查看外网ip,yum安装的curl无法正常使用
    ElasticSearch安装
    Redis的主从架构+哨兵模式
    Redis的持久化方式
    Nacos 注册中心集群搭建
    kafka安装流程
    WinUI 3学习笔记(1)—— First Desktop App
    .NET 5学习笔记(12)——WinUI 3 Project Reunion 0.5
  • 原文地址:https://www.cnblogs.com/heavenStrone/p/5841297.html
Copyright © 2011-2022 走看看