這篇文章主要講解了“Android怎么使用Handler實(shí)現(xiàn)定時器與倒計(jì)時器功能”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Android怎么使用Handler實(shí)現(xiàn)定時器與倒計(jì)時器功能”吧!
創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)霍爾果斯,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
什么是Handler
Handler是Android消息機(jī)制的上層接口,它為我們封裝了許多底層的細(xì)節(jié),讓我們能夠很方便的使用底層的消息機(jī)制。Handler的最常見應(yīng)用場景之一便是通過Handler在子線程中間接更新UI。Handler的作用主要有兩個:一是發(fā)送消息;二是處理消息,它的運(yùn)作需要底層Looper和MessageQueue的支撐。MessageQueue即消息隊(duì)列,它的底層用單鏈表實(shí)現(xiàn);Looper則負(fù)責(zé)在一個循環(huán)中不斷從MessageQueue中取消息,若取到了就交由Handler進(jìn)行處理,否則便一直等待。關(guān)于Looper需要注意的一點(diǎn)是除了主線程之外的其他線程中默認(rèn)是不存在Looper的。主線程中之所以存在,是因?yàn)樵贏ctivityThread被創(chuàng)建時會完成初始化Looper的工作。
特性
支持操作 :
start
pause
resume
cancel
使用
allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies { ... compile 'com.github.xesam:AndroidTimer:v0.1' }
TODO
add ticker sequence
使用
CountTimer
new CountTimer(100) { @Override public void onTick(long millisFly) { // millisFly is the Elapsed time at *Running State* vCountSwitcher.setText((millisFly) + ""); Log.d("onTick", millisFly + ""); } };
CountDownTimer
new CountDownTimer(10_000, 100) { @Override public void onTick(long millisUntilFinished) { // millisUntilFinished is the left time at *Running State* Log.d("onTick", millisFly + ""); } @Override public void onCancel(long millisUntilFinished) { } @Override public void onPause(long millisUntilFinished) { } @Override public void onResume(long millisUntilFinished) { } @Override public void onFinish() { } };
使用一個 Handler 同時管理多個定時任務(wù)
創(chuàng)建多個任務(wù):
MultiCountTimer multiCountTimer = new MultiCountTimer(100); multiCountTimer.add(new CounterTimerTask(1) { @Override public void onTick(long millisFly) { vMulti1.setText("multi_1:" + millisFly); } }).registerTask(new CounterTimerTask(2, 100) { @Override public void onTick(long millisFly) { vMulti2.setText("multi_2:" + millisFly); } }).registerTask(new CounterTimerTask(3, 1000) { @Override public void onTick(long millisFly) { vMulti3.setText("multi_3:" + millisFly); } }); multiCountTimer.startAll();
取消任務(wù):
multiCountTimer.cancel(2); 或者 multiCountTimer.cancelAll();
感謝各位的閱讀,以上就是“Android怎么使用Handler實(shí)現(xiàn)定時器與倒計(jì)時器功能”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Android怎么使用Handler實(shí)現(xiàn)定時器與倒計(jì)時器功能這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!