android中透过looper+handler方式在子线程中刷新UI

android中通过looper+handler方式在子线程中刷新UI

package com.saul;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
/**
 * 通过looper+handler方式在子线程中刷新UI
 * @author Saul
 *
 */
public class UpdateTitle extends Activity {
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  ModifyTitle modifyTitle=new ModifyTitle();
  modifyTitle.start();
 }
 class ModifyTitle extends Thread{
  TitleEventHandler handler;
  public void run(){
   Looper mainLooper=Looper.getMainLooper();
   handler=new TitleEventHandler(mainLooper);
   handler.removeMessages(0);
   Message msg=null;
   Long currentSecond;
   Long previousSecond = 0l;
   int time = 5;
   while (true) {
    currentSecond = (System.currentTimeMillis() / 1000) % 10;
    if (currentSecond != previousSecond) {
     time--;
     if (time < 0) {
      break;
     }
     msg=handler.obtainMessage(1, 1, 1,"当前还剩" + (time + 1) + "秒");
     handler.sendMessage(msg);
     previousSecond = currentSecond;
    }
   }
  }
 }
 class TitleEventHandler extends Handler{

  public TitleEventHandler() {
   super();
  }

  public TitleEventHandler(Looper looper) {
   super(looper);
  }

  @Override
  public void handleMessage(Message msg) {
   super.handleMessage(msg);
   setTitle((String)msg.obj);
  }
  
 }
}