Android (java) 학습 노트 76: 다 중 스 레 드 - 타이머 개요 및 사용
14994 단어 android
타 이 머 는 매우 광범 위 하 게 응용 되 는 스 레 드 도구 로 여러 개의 정시 작업 을 예약 한 후에 스 레 드 를 실행 할 수 있 습 니 다.
자바 에 서 는 Timer 와 Timer Task 류 를 통 해 스케줄 링 을 정의 하 는 기능 을 수행 할 수 있 습 니 다.
Timer
public Timer()
public void schedule(TimerTask task, long delay)
public void schedule(TimerTask task,long delay,long period)
Timer Task --- 추상 류
public abstract void run()
public boolean cancel()
개발 중 Quartz 는 완전히 자바 가 작성 한 오픈 소스 스케줄 링 프레임 워 크 입 니 다.
다음은 코드 예제 에 대한 설명 입 니 다.
1.public void schedule(TimerTask task, long delay)
1 package cn.itcast_12;
2
3 import java.util.Timer;
4 import java.util.TimerTask;
5
6 /*
7 * 定时器:可以让我们在指定的时间做某件事情,还可以重复的做某件事情。
8 * 依赖Timer和TimerTask这两个类:
9 * Timer:定时
10 * public Timer()
11 * public void schedule(TimerTask task,long delay) 12 * public void schedule(TimerTask task,long delay,long period)
13 * public void cancel()
14 * TimerTask:任务
15 */
16 public class TimerDemo {
17 public static void main(String[] args) {
18 // 创建定时器对象
19 Timer t = new Timer();
20 // 3秒后执行爆炸任务
21 // t.schedule(new MyTask(), 3000);
22 //结束任务
23 t.schedule(new MyTask(t), 3000);
24 }
25 }
26
27 // 做一个任务
28 class MyTask extends TimerTask {
29
30 private Timer t;
31
32 public MyTask(){}
33
34 public MyTask(Timer t){
35 this.t = t;
36 }
37
38 @Override
39 public void run() {
40 System.out.println("beng,爆炸了");
41 t.cancel();
42 }
43
44 }
2.public void schedule(TimerTask task,long delay,long period)
1 package cn.itcast_12;
2
3 import java.util.Timer;
4 import java.util.TimerTask;
5
6 /*
7 * 定时器:可以让我们在指定的时间做某件事情,还可以重复的做某件事情。
8 * 依赖Timer和TimerTask这两个类:
9 * Timer:定时
10 * public Timer()
11 * public void schedule(TimerTask task,long delay)
12 * public void schedule(TimerTask task,long delay,long period)
13 * public void cancel()
14 * TimerTask:任务
15 */
16 public class TimerDemo2 {
17 public static void main(String[] args) {
18 // 创建定时器对象
19 Timer t = new Timer();
20 // 3秒后执行爆炸任务第一次,如果不成功,每隔2秒再继续炸
21 t.schedule(new MyTask2(), 3000, 2000); 22 }
23 }
24
25 // 做一个任务
26 class MyTask2 extends TimerTask {
27 @Override
28 public void run() {
29 System.out.println("beng,爆炸了");
30 }
31 }
3. 지정 한 내용 이 있 는 디 렉 터 리 를 정기 적 으로 삭제 합 니 다.
1 package cn.itcast_12;
2
3 import java.io.File;
4 import java.text.ParseException;
5 import java.text.SimpleDateFormat;
6 import java.util.Date;
7 import java.util.Timer;
8 import java.util.TimerTask;
9
10 /*
11 * 需求:在指定的时间删除我们的指定目录(你可以指定c盘,但是我不建议,我使用项目路径下的demo)
12 */
13
14 class DeleteFolder extends TimerTask {
15
16 @Override
17 public void run() {
18 File srcFolder = new File("demo");
19 deleteFolder(srcFolder);
20 }
21
22 // 递归删除目录
23 public void deleteFolder(File srcFolder) {
24 File[] fileArray = srcFolder.listFiles();
25 if (fileArray != null) {
26 for (File file : fileArray) {
27 if (file.isDirectory()) {
28 deleteFolder(file);
29 } else {
30 System.out.println(file.getName() + ":" + file.delete());
31 }
32 }
33 System.out.println(srcFolder.getName() + ":" + srcFolder.delete());
34 }
35 }
36 }
37
38 public class TimerTest {
39 public static void main(String[] args) throws ParseException {
40 Timer t = new Timer();
41
42 String s = "2014-11-27 15:45:00";
43 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
44 Date d = sdf.parse(s);
45
46 t.schedule(new DeleteFolder(), d);
47 }
48 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.