有一个姑凉 发表于 2013-8-28 16:19

第三十四讲:Android Timer计时器

1821  本讲内容:Android Timer计时器抱歉,这一讲似乎有点水啊,实际上Timer和TimerTask都是JDK自带的功能,两个类结合可以实现定时任务执行一次,或者定期重复执行任务。   
   
  好吧上例子,这个例子实现的模拟发射火箭……,那啥,这节课的例子也好水啊。   
   
  1、新建一个项目:Lesson34_Timer2、MainActivity.java代码如下:   
    package basic.android.timer;   
   
import java.util.Timer;   
import java.util.TimerTask;   
   
import android.app.Activity;   
import android.os.Bundle;   
import android.os.Handler;   
import android.os.Message;   
import android.util.Log;   
import android.view.View;   
import android.widget.Button;   
import android.widget.TextView;   
   
public class MainActivity extends Activity {   
   
      Timer timer;   
   
      @Override   
      public void onCreate(Bundle savedInstanceState) {   
                super.onCreate(savedInstanceState);   
                setContentView(R.layout.main);   
   
                // 定义UI组件   
                final TextView tv1 = (TextView) findViewById(R.id.textView1);   
                Button b1 = (Button) findViewById(R.id.button1);   
   
                Log.i("yao", Thread.currentThread().getName());   
   
                // 定义Handler   
                final Handler handler = new Handler() {   
   
                        @Override   
                        public void handleMessage(Message msg) {   
                              super.handleMessage(msg);   
                              //handler处理消息   
                              if(msg.what>0){   
                                        tv1.setText("" + msg.what);   
                              }else{   
                                        //在handler里可以更改UI组件   
                                        tv1.setText("点火!");   
                                        timer.cancel();   
                              }   
                        }   
                };   
   
                // 定义按钮的点击监听器   
                b1.setOnClickListener(new View.OnClickListener() {   
   
                        @Override   
                        public void onClick(View arg0) {   
                              // 定义计时器   
                                 timer = new Timer();   
   
                              // 定义计划任务,根据参数的不同可以完成以下种类的工作:在固定时间执行某任务,在固定时间开始重复执行某任务,重复时间间隔可控,在延迟多久后执行某任务,在延迟多久后重复执行某任务,重复时间间隔可控   
                              timer.schedule(new TimerTask() {   
                                        int i = 10;   
   
                                        // TimerTask 是个抽象类,实现的是Runable类   
                                        @Override   
                                        public void run() {   
   
                                                Log.i("yao", Thread.currentThread().getName());   
   
                                                //定义一个消息传过去   
                                                Message msg = new Message();   
                                                msg.what = i--;   
                                                handler.sendMessage(msg);   
                                        }   
   
                              }, 1000, 200);   
                        }   
                });   
   
      }   
   
}3、布局文件,配置文件啊我都不上了啊,你们看源码去,不看源码也能猜出来的,直接编译运行程序,查看结果:   
http://www.apkbus.com/data/attachment/forum/201104/29/1549069a3v9554zq6wzzm3.png   
http://www.apkbus.com/data/attachment/forum/201104/29/154903nj8w9jj324bk99ll.png   
   
好吧,本讲就这样结束了,其实你也学到了点东西哈,在Android里进行时间调度还是有方法的,在Android里进行UI控制还是要用Handler的,弱弱的问一句,那些悄悄定时发短信的垃圾程序是用啥技术实现的呢?   
   
页: [1]
查看完整版本: 第三十四讲:Android Timer计时器