8-2.Android 任务之 CountDownTimer 编码模板(开启计时器、取消计时器)

一、CountDownTimer

1、概述
  1. CountDownTimer 是 Android 中一个用于执行定时操作的类

  2. CountDownTimer 主要应用于在指定时间段内完成某项任务,或者每隔一段时间触发某项任务

2、使用步骤
  1. 创建 CountDownTimer:创建 CountDownTimer 就是创建它的匿名子类,并实现它的两个方法
方法说明
onTick(long millisUntilFinished)该方法会在每个间隔时间段结束时被调用
millisUntilFinished 是倒计时剩余时间(毫秒)
onFinish()该方法会在结束时被调用
millisUntilFinished 到达 0 时
  1. 使用 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();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_count_down_timer_test);

        // 倒计时 millisInFuture 毫秒,每 countDownInterval 毫秒调用一次
        CountDownTimer countDownTimer = new CountDownTimer(5000, 1000) {

            @Override
            public void onTick(long millisUntilFinished) {
                Log.i(TAG, "剩余时间:" + millisUntilFinished / 1000 + " 秒");
            }

            @Override
            public 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();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_count_down_timer_cancel);

        // 倒计时 millisInFuture 毫秒,每 countDownInterval 毫秒调用一次
        CountDownTimer countDownTimer = new CountDownTimer(5000, 1000) {

            @Override
            public void onTick(long millisUntilFinished) {

                // 在第 3 秒时取消计时器
                long s = millisUntilFinished / 1000;
                Log.i(TAG, "剩余时间:" + s + " 秒");
                if (s == 3) {
                    Log.i(TAG, "取消计时器");
                    cancel();
                    return;
                }
            }

            @Override
            public void onFinish() {
                Log.i(TAG, "倒计时结束");
            }
        };

        countDownTimer.start();
    }
}
  • 输出结果
I/CountDownTimerCancelActivity: 剩余时间:4 秒
I/CountDownTimerCancelActivity: 剩余时间:3 秒
I/CountDownTimerCancelActivity: 取消计时器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值