欢迎转载,但请保留文章原始出处:)
Android中文翻译组:http://androidbox.sinaapp.com/
CountDownTimer
译者署名: liliang1222
版本:Android 4.0 r1
结构
继承关系
public abstract class
CountDownTimer extends Object
java.lang.Object
android.os.CountDownTimer
类概述
定时执行在一段时候后停止的倒计时,在倒计时执行过程中会在固定间隔时间得到通知(译者:触发onTick方法),下面的例子显示在一个文本框中显示一个30s倒计时:
new
CountdownTimer(30000,
1000)
{
public
void onTick(long
millisUntilFinished)
{
mTextField.setText("seconds
remaining: "
+ millisUntilFinished
/
1000);
}
public
void onFinish()
{
mTextField.setText("done!");
}
}.start();
onTick的调用是同步的,保证这次调用不会在之前调用完成前发生。这里的同步机制主要是用来:onTick的实现需要很多时间执行比倒计时间隔更重要的事情。
构造函数
public CountDownTimer (long millisInFuture, long countDownInterval)
参数
millisInFuture
从开始调用start()到倒计时完成并onFinish()方法被调用的毫秒数。(译者注:倒计时时间,单位毫秒)
countDownInterval
接收onTick(long)回调的间隔时间。(译者注:单位毫秒)
公共方法
public final void
cancel ()
取消倒计时(译者:取消后,再次启动会重新开始倒计时)
public abstract void
onFinish ()
倒计时完成时被调用
public abstract void
onTick (long millisUntilFinished)
固定间隔被调用
参数
millisUntilFinished 倒计时剩余时间。
public synchronized final CountDownTimer
start ()
启动倒计时
补充
文章精选
android倒计时功能的实现(CountDownTimer)
示例代码
Java:
package com.test.countdowntimer;
import android.app.Activity; import android.os.Bundle; import android.os.CountDownTimer; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView;
import com.test.R;
public
TextView Button Button setContentView(R.layout.countdown); }
CountDownTimer Thread.sleep(1200); } e.printStackTrace(); } Log.e("CountDown",millisUntilFinished+""); } } }; } } }
|
XML:
<?xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> </LinearLayout>
|
说明:
CountDownTimer的间隔为1s,我们在onTIck方法里面休眠了1.2s,所以log出来发现打印间隔变成了2s,即中间一次onTick方法没有被执行(不会在之前一次调用完成前被调用)。