AndroidTimer使用(二)

Android Timer计时器,实际上Timer和TimerTask都是JDK自带的功能,两个类结合可以实现定时任务执行一次,或者定期重复执行任务。

这个例子实现的模拟发射火箭……

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);

                        }

                });



        }



}

 布局文件,配置文件啊我都不上了啊,你们看源码去,不看源码也能猜出来的,直接编译运行程序,查看结果:

 

1.png

 

2.png

 在Android里进行时间调度还是有方法的,在Android里进行UI控制还是要用Handler的。

你可能感兴趣的:(android)