Android CountDownTimer

本文详细介绍了Android中的CountDownTimer类的使用方法,包括如何设置定时时间、时间间隔、启动及取消定时器等,并通过一个完整的示例展示了其具体应用。

CountDowntimer用于倒计时。

参考链接

https://developer.android.com/reference/android/os/CountDownTimer.html

分析

CountDownTimer(long millisInFuture, long countDownInterval)

第一个参数定时时间(毫秒),过了这段时间,定时器停止;第二个参数,时间间隔,在定时期间内,没过countDownInterval将会调用onTick函数。

cancel() 取消定时器

onFinish() 定时时间到调用

onTick(long millisUntilFinished) 时间间隔到的时候调用

start() 开始定时器

Example

package com.example.countdowntimertest;

import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    Button btn;
    CountDownTimer timer;

    private final static long INTERVAL_TIME = 1000;
    private final static long FINISH_TIME = 1000 * 10;

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

        // 定时10s, 时间间隔1s
        timer = new CountDownTimer(FINISH_TIME, INTERVAL_TIME) {
            @Override
            public void onTick(long millisUntilFinished) {
                // 打印剩余的倒计时时间,还剩几秒
                Log.d("onTick", "remaining: " + millisUntilFinished / 1000);
            }
            // 定时器时间到调用
            @Override
            public void onFinish() {
                Log.d("onTick", "timer finished");
            }
        };
        // 定时器启动 
        timer.start();

        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 定时器关闭
                timer.cancel();
            }
        });
    }
}

运行输出

03-22 09:51:34.432 27885-27885/com.example.countdowntimertest D/onTick: remaining: 9
03-22 09:51:34.432 27885-27885/com.example.countdowntimertest D/onTick: remaining: 8
03-22 09:51:34.432 27885-27885/com.example.countdowntimertest D/onTick: remaining: 7
03-22 09:51:35.432 27885-27885/com.example.countdowntimertest D/onTick: remaining: 6
03-22 09:51:36.433 27885-27885/com.example.countdowntimertest D/onTick: remaining: 5
03-22 09:51:37.435 27885-27885/com.example.countdowntimertest D/onTick: remaining: 4
03-22 09:51:38.436 27885-27885/com.example.countdowntimertest D/onTick: remaining: 3
03-22 09:51:39.437 27885-27885/com.example.countdowntimertest D/onTick: remaining: 2
03-22 09:51:40.438 27885-27885/com.example.countdowntimertest D/onTick: remaining: 1
03-22 09:51:42.402 27885-27885/com.example.countdowntimertest D/onTick: timer finished

按下button键,将会中途停止定时器。

Tony Liu

2017-3-22, Shenzhen

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值