zoukankan      html  css  js  c++  java
  • 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的。

  • 相关阅读:
    BZOJ 1834 Luogu P2604 [ZJOI2010]网络扩容 (最小费用最大流)
    BZOJ 1565 Luogu P2805 [NOI2009]植物大战僵尸 (Tarjan判环、最小割)
    BZOJ 3993 Luogu P3324 [SDOI2015]星际战争 (最大流、二分答案)
    BZOJ 3277 串 & BZOJ 3473 字符串 (广义后缀自动机、时间复杂度分析)
    BZOJ 2806 Luogu P4022 [CTSC2012]Cheat (广义后缀自动机、DP、二分、单调队列)
    Mongodb的聚合和管道
    Mongodb文档查询
    Mongodb的基本操作-数据库 集合 文档的增删改查
    Linux下Mongodb的安装
    mongdb的优势和不足
  • 原文地址:https://www.cnblogs.com/xuewater/p/2594659.html
Copyright © 2011-2022 走看看