Timer小记
来源:互联网 发布:dota2知乎 编辑:程序博客网 时间:2024/06/05 15:13
Timer是一个普通的类,其中有几个重要的方法;而TimerTask则是一个抽象类,其中有一个抽象方法run(),类型线程中的run()方法。我们使用Timer创建一个他的对象,然后使用这对象的schedule方法来完成这种间隔的操作。
schedule方法有三个参数,其中第一个参数就是TimerTask类型的对象,我们实现TimerTask的run()方法就是要周期执行的一个任务;第二个参数有两种类型,第一种是long类型,表示多长时间后开始执行,另一种是Date类型,表示从那个时间后开始执行;而第三个参数就是执行的周期,为long类型。
schedule方法还有一种两个参数的执行重载,第一个参数仍然是TimerTask,第二个表示为long的形式表示多长时间后执行一次,为Date就表示某个时间后执行一次。
//以下是几种调度task的方法:
timer.schedule(task, time);
// time为Date类型:在指定时间执行一次。
timer.schedule(task, firstTime, period);
// firstTime为Date类型,period为long
// 从firstTime时刻开始,每隔period毫秒执行一次。
timer.schedule(task, delay)
// delay 为long类型:从现在起过delay毫秒执行一次
timer.schedule(task, delay, period)
// delay为long,period为long:从现在起过delay毫秒以后,每隔period
// 毫秒执行一次。
下面咱们看一个小例子。
1、首先在布局中写一个简单的Button,为他添加监听。当点击Button后,创建一个Timer对象,并使用Timer对象的schedule(task,delay)方法;定义一个内部类来发送handler。如下:
然后在handler中执行操作
下面是代码:
import android.os.Bundle;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.Toast;import java.util.Timer;import java.util.TimerTask;public class MainActivity extends AppCompatActivity { private Button but; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); but = (Button)findViewById(R.id.but); but.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //首先写一个Timer Timer timer = new Timer(); timer.schedule(new Timers(),2000); } }); } //定义一个Timers类继承TimerTask protected class Timers extends TimerTask { @Override public void run() { //发送一条handler消息, Message message = new Message(); message.what = 1; handler.sendMessage(message); } } android.os.Handler handler = new android.os.Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what){ case 1: //在次执行操作 Toast.makeText(MainActivity.this,"一种写法",Toast.LENGTH_SHORT).show(); break; } super.handleMessage(msg); } };
布局很简单
<Button android:id="@+id/but" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点一下" />
就那么多,以后会补充更多的内容
0 0
- Timer小记
- Timer小记
- Java定时器Timer小记
- Linux驱动--定时器timer小记
- timer
- Timer
- timer
- timer
- Timer
- Timer......
- timer
- TIMER
- TIMER
- TIMER
- timer
- Timer
- Timer
- timer
- Xcode下的相对路径和绝对路径
- JPA概要
- getCurrentSession()
- android 相机的扫码以及生成二维码
- Java中常用字符串方法总结
- Timer小记
- mtd mdd
- 分享nginx做代理的一份配置
- C++理论复习之运算符重载
- log4net的使用
- 线程同步的几种方法的总结
- java时间
- android 一些重要文件记录
- R语言实现︱局部敏感哈希算法(LSH)解决文本机械相似性的问题(二,textreuse介绍)