• 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的。

  • 相关阅读:
    红黑树的修正过程
    配置文件elasticsearch.yml详解
    HEAD插件安装
    css reset.css
    vue-router之router-link
    vue2.0 代码功能片段
    vue2.0的常用功能简介
    electron 的中文文档的地址 以及 窗口改变的步骤
    ph 的使用步骤
    git 提交的步骤
  • 原文地址:https://www.cnblogs.com/xuewater/p/2594659.html
Copyright © 2020-2023  润新知