我们将JDK中自带的Timer和TimerTask两个类结合使用,可以实现执行一次定时任务,或者定期重复执行任务。

       下面直接上例子,这个例子实现的是模拟发射火箭……,那啥,这节课的例子有点水啊。

       1、新建一个项目:Lesson34_Timer。

       2、MainActivity.java代码如下:

Java代码
  1. package basic.android.timer;   
  2.   
  3. import java.util.Timer;   
  4. import java.util.TimerTask;   
  5.   
  6. import android.app.Activity;   
  7. import android.os.Bundle;   
  8. import android.os.Handler;   
  9. import android.os.Message;   
  10. import android.util.Log;   
  11. import android.view.View;   
  12. import android.widget.Button;   
  13. import android.widget.TextView;   
  14.   
  15. public class MainActivity extends Activity {   
  16.   
  17.     Timer timer;   
  18.   
  19.     @Override  
  20.     public void onCreate(Bundle savedInstanceState) {   
  21.         super.onCreate(savedInstanceState);   
  22.         setContentView(R.layout.main);   
  23.   
  24.         // 定义UI组件   
  25.         final TextView tv1 = (TextView) findViewById(R.id.textView1);   
  26.         Button b1 = (Button) findViewById(R.id.button1);   
  27.   
  28.         Log.i("yao", Thread.currentThread().getName());   
  29.   
  30.         // 定义Handler   
  31.         final Handler handler = new Handler() {   
  32.   
  33.             @Override  
  34.             public void handleMessage(Message msg) {   
  35.                 super.handleMessage(msg);   
  36.                 //handler处理消息   
  37.                 if(msg.what>0){   
  38.                     tv1.setText("" + msg.what);   
  39.                 }else{   
  40.                     //在handler里可以更改UI组件   
  41.                     tv1.setText("点火!");   
  42.                     timer.cancel();   
  43.                 }   
  44.             }   
  45.         };   
  46.   
  47.         // 定义按钮的点击监听器   
  48.         b1.setOnClickListener(new View.OnClickListener() {   
  49.   
  50.             @Override  
  51.             public void onClick(View arg0) {   
  52.                 // 定义计时器   
  53.                  timer = new Timer();   
  54.   
  55.                 // 定义计划任务,根据参数的不同可以完成以下种类的工作:在固定时间执行某任务,在固定时间开始重复执行某任务,重复时间间隔可控,在延迟多久后执行某任务,在延迟多久后重复执行某任务,重复时间间隔可控   
  56.                 timer.schedule(new TimerTask() {   
  57.                     int i = 10;   
  58.   
  59.                     // TimerTask 是个抽象类,实现的是Runable类   
  60.                     @Override  
  61.                     public void run() {   
  62.   
  63.                         Log.i("yao", Thread.currentThread().getName());   
  64.   
  65.                         //定义一个消息传过去   
  66.                         Message msg = new Message();   
  67.                         msg.what = i--;   
  68.                         handler.sendMessage(msg);   
  69.                     }   
  70.   
  71.                 }, 1000200);   
  72.             }   
  73.         });   
  74.   
  75.     }   
  76.   
  77. }  

       3、布局文件,配置文件啊我都不上了啊,比较简单了,直接编译运行程序,查看结果:

Android学习指南之三十四:Android定时器Timer的使用

Android学习指南之三十四:Android定时器Timer的使用

       好吧,本讲就这样结束了,其实你也学到了点东西哈:在Android里进行时间调度还是有方法的;对Android进行UI控制还是要用Handler的,等等。弱弱的问一句,那些悄悄定时发短信的垃圾程序是用啥技术实现的呢?

本文发布:Android开发网
本文地址:http://www.teaching4real.com/android/course/239.html
2012年10月18日
发布:鸡啄米 分类:Android开发教程 浏览: 注册送白菜网:0