动态更新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去实现。

 

转载于:https://www.cnblogs.com/heavenStrone/p/5841297.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值