Android基礎之——CountDownTimer類,輕松實現倒計時功能


在發現這個類之前,一直是用的handler,子線程發消息,UI線程進行倒計時的顯示工作。前幾天在做一個倒計時顯示的時候發現了這個類,用起來非常方便

翻看了下源代碼。內部已經幫我們實現了handler的子線程操作



CountDownTimer這個類用起來非常easy。兩個參數。幾句代碼搞定,例如以下:

CountDownTimer(long millisInFuture, long countDownInterval) 


構造函數有兩個參數,第一個 millisInFuture是指要倒計時的總時間,單位是long ms。第二個參數countDownInterval是指倒計時的頻率,是一次倒計時1s 還是一次倒計時2s

知道這兩個參數的意思那就非常好辦了,new一個CountDownTimer對象就會生成兩個回調函數

public void onTick(long millisUntilFinished) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onFinish() {
				// TODO Auto-generated method stub
				
			}

第一個方法 就是在倒計時的時候調用的,每倒計時一次要進行什么操作。就能夠放在這里面做。通常是對UI線程進行一些操作。比方對文本進行更改,達到倒計時的效果

第二個方法是倒計時完畢后調用。倒計時完畢須要進行什么操作都能夠寫在里面。

當然,最后一定要記得start() 否則線程不會開始

所有代碼:

public class MainActivity extends Activity {

	private TextView tv;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		tv = (TextView) findViewById(R.id.tv);
		
		/** 倒計時60秒,一次1秒 */
		CountDownTimer timer = new CountDownTimer(60*1000, 1000) {
			@Override
			public void onTick(long millisUntilFinished) {
				// TODO Auto-generated method stub
				tv.setText("還剩"+millisUntilFinished/1000+"秒");
			}
			
			@Override
			public void onFinish() {
				tv.setText("倒計時完畢了");
			}
		}.start();
	}

}

效果圖:


       



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM