以前編程的時候,遇到倒計時的功能時,經常自己去寫,但其實Android已經幫封裝好瞭一個倒計時類CountDownTimer,其實是將後臺線程的創建和Handler隊列封裝成為瞭一個方便的類調用。
說明:
CountDownTimer timer = new CountDownTimer(30000, 1000)中,第一個參數表示總時間,第二個參數表示間隔時間。
意思就是每隔一秒會回調一次方法onTick,然後30秒之後會回調onFinish方法。
package com.androidcountdowntimer2; import android.app.Activity; import android.os.Bundle; import android.os.CountDownTimer; import android.widget.TextView; /** * Android倒計時功能的實現(CountDownTimer) * @author zhongyao * */ public class MainActivity extends Activity { private MyCount mc; private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView)findViewById(R.id.show); mc = new MyCount(30000, 1000); mc.start(); } /*定義一個倒計時的內部類*/ class MyCount extends CountDownTimer { public MyCount(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval); } @Override public void onTick(long millisUntilFinished) { tv.setText("請等待:" + millisUntilFinished / 1000 + "秒..."); } @Override public void onFinish() { tv.setText("finish"); } } @Override protected void onDestroy() { super.onDestroy(); mc.cancel(); } }