timer 的使用 模拟显示时间,可以每隔一段时间定时执行调度

来源:互联网 发布:熊猫采集软件下载 编辑:程序博客网 时间:2024/04/29 22:39

package com.example.test;

import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {
 private TextView textview = null ;
 private Handler myhandler = null ; 
 private Timer time1 =  new Timer() ;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  super.setContentView(R.layout.activity_main);
  this.textview = (TextView) super.findViewById(R.id.textview) ;
  myhandler = new Handler(){

  @Override
  public void handleMessage(Message msg) {
   super.handleMessage(msg);
   String str = (String)msg.obj ;
   MainActivity.this.textview.setText(str) ;
  }
  
  
  
 }; 
  
 setSchedule(); 
 
 
 }
 
 public void setSchedule(){
  
  time1.schedule(new TimerTask() {
   
   @Override
   public void run() {

   
     //Thread.sleep(1000);
     Message msg = myhandler.obtainMessage() ;
     msg.obj = setTime().toString() ;
     myhandler.sendMessage(msg) ;
   
   }
  },0,1000);  // 0 代表不延时操作,1000代表每隔一秒执行一次
  
 }
 
 public String setTime(){   //取当前系统时间
  String time = null ;
  Calendar cal = Calendar.getInstance() ;
  int mHour = cal.get(Calendar.HOUR_OF_DAY) ;
  int mMinute = cal.get(Calendar.MINUTE) ;
  int mSecond = cal.get(Calendar.SECOND) ;
  if (mHour < 10)
   time = "0" + mHour;
  else
   time = mHour + "";
  if (mMinute < 10)
   time = time + ":0" + mMinute;
  else
   time = time + ":" + mMinute;
  if (mSecond < 10)
   time = time + ":0" + mSecond;
  else
   time = time + ":" + mSecond;
  return time;
  
 }
 

//注意

protected void onDestroy() {
  // TODO Auto-generated method stub

 timer1.cancel();
  super.onDestroy();
 }

 

}