動態更新UI的方式

1. TimerTask 和 timer連用:android

這裏主要是實現倒計時,ide

TimerTask 裏面有方法runOnUiThread,在這個方法裏面調用timer cancel()中止倒計時,一樣更新UI也是在這裏實現的oop

 

2.使用looper更新UI界面post

這裏主要是隨時將處理後的數據交給UI更新,這時就要從新開啓一個線程來更新UI,android 提供了handler機制來實現這種通訊。線程

在Main線程裏面新開一個線程thread

Handler  handler=  newHandler(){date

  @Override方法

  public void handleMessage(Message msg){im

    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去實現。

相關文章
相關標籤/搜索