8-2.Android 任务之 CountDownTimer 编码模板(开启计时器、取消计时器)
一、CountDownTimer
1、概述
-
CountDownTimer 是 Android 中一个用于执行定时操作的类
-
CountDownTimer 主要应用于在指定时间段内完成某项任务,或者每隔一段时间触发某项任务
2、使用步骤
- 创建 CountDownTimer:创建 CountDownTimer 就是创建它的匿名子类,并实现它的两个方法
方法 | 说明 |
---|---|
onTick(long millisUntilFinished) | 该方法会在每个间隔时间段结束时被调用 millisUntilFinished 是倒计时剩余时间(毫秒) |
onFinish() | 该方法会在结束时被调用 millisUntilFinished 到达 0 时 |
- 使用 CountDownTimer:使用 CountDownTimer 实例对象的方法
方法 | 说明 |
---|---|
start() | 开启计时器 |
cancel() | 取消计时器 |
二、CountDownTimer 基本使用
1、初体验
package com.my.countdowntimer;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.os.CountDownTimer;
import android.util.Log;public class CountDownTimerTestActivity extends AppCompatActivity {public static final String TAG = CountDownTimerTestActivity.class.getSimpleName();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_count_down_timer_test);// 倒计时 millisInFuture 毫秒,每 countDownInterval 毫秒调用一次CountDownTimer countDownTimer = new CountDownTimer(5000, 1000) {@Overridepublic void onTick(long millisUntilFinished) {Log.i(TAG, "剩余时间:" + millisUntilFinished / 1000 + " 秒");}@Overridepublic void onFinish() {Log.i(TAG, "倒计时结束");}};countDownTimer.start();}
}
- 输出结果
I/CountDownTimerTestActivity: 剩余时间:3 秒
I/CountDownTimerTestActivity: 剩余时间:2 秒
I/CountDownTimerTestActivity: 剩余时间:1 秒
I/CountDownTimerTestActivity: 剩余时间:0 秒
I/CountDownTimerTestActivity: 倒计时结束
2、取消计时器
package com.my.countdowntimer;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.os.CountDownTimer;
import android.util.Log;public class CountDownTimerCancelActivity extends AppCompatActivity {public static final String TAG = CountDownTimerCancelActivity.class.getSimpleName();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_count_down_timer_cancel);// 倒计时 millisInFuture 毫秒,每 countDownInterval 毫秒调用一次CountDownTimer countDownTimer = new CountDownTimer(5000, 1000) {@Overridepublic void onTick(long millisUntilFinished) {// 在第 3 秒时取消计时器long s = millisUntilFinished / 1000;Log.i(TAG, "剩余时间:" + s + " 秒");if (s == 3) {Log.i(TAG, "取消计时器");cancel();return;}}@Overridepublic void onFinish() {Log.i(TAG, "倒计时结束");}};countDownTimer.start();}
}
- 输出结果
I/CountDownTimerCancelActivity: 剩余时间:4 秒
I/CountDownTimerCancelActivity: 剩余时间:3 秒
I/CountDownTimerCancelActivity: 取消计时器