Android之Handle的使用[一]

Android之Handle的使用[一]
需求:在界面上有两个按钮,一个开始,一个停止。点击开始按钮,更新应用的标题为当前时间。按停止按钮停止更新时间。
考察:handler的使用。
这里借助Handler+Timer+TimerTask来实现

package com.zhy.ui;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

import com.zhy.shortcut.R;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public  class UpdateUiActivity  extends Activity  implements OnClickListener{
    
    
     private  static  final  int UPDATA_TITIE=1;
    
    Button start;
    Button stop;
    
    TimerTask task;
    
    Handler handler;
    
    @Override
     protected  void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
        
        setContentView(R.layout.ui);
        
        start=(Button) findViewById(R.id.start);
        stop=(Button) findViewById(R.id.stop);
        
         // 实列化Handler
        handler= new Handler(){
             // 处理消息
            @Override
             public  void handleMessage(Message msg) {
                 super.handleMessage(msg);
                 // 标记消息
                 switch (msg.what) {
                 case UPDATA_TITIE:
                     // 更新UI
                    updateTitle(msg);
                     break;

                 default:
                     break;
                }
            }
        };
        
        start.setOnClickListener( this);
        stop.setOnClickListener( this);
        
    }

    @Override
     public  void onClick(View v) {
         switch (v.getId()) {
         case R.id.start:
             // 创建一个定时器
            Timer timer= new Timer();
             // 创建TimerTask
            task= new TimerTask() {
                
                 // 实现run方法,这里存放需要实时更新时间的代码
                @Override
                 public  void run() {
                     // 创建一个消息体
                    Message message= new Message();
                     // 标记消息
                    message.what=UPDATA_TITIE;
                     // 传递数据
                    message.obj= new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format( new Date());
                     // 发送消息
                    handler.sendMessage(message);
                }
            };
             // 调度,每隔一秒中执行一次
            timer.schedule(task, 1, 1000);
             break;
         case R.id.stop:
             // 停止
             if(task!= null){
                task.cancel();
            }
             break;
         default:
             break;
        }
    }
    
     /**
     * 更新应用标题
     * 
@param  msg
     
*/
     private  void updateTitle(Message msg) {
        UpdateUiActivity. this.setTitle(String.valueOf(msg.obj));
    }
    
    
}

你可能感兴趣的:(Android之Handle的使用[一])