你是否正在寻找关于countdowntimer的内容?让我把最高级的东西奉献给你:

倒计时组件countdowntimer源码分析
针对倒计时功能,Android专门封装了一个对象 countdowntimer 。看了下其源码,和上面的思路不谋而合,且源码实现的也比较简单,先对其源码进行一个简单的分析。
一、
构造函数:
源码很简单,先阅读其
构造函数
,其构造函数就两参数:倒计时时间相对值,倒计时间隔时间。
二、
公有函数:
再看其
公有函数
:
2.1)
start函数:
很简单,就计算了下倒计时结束的绝对时间,同时,发送一个消息。消息如何处理,看后面分析。
2.2)
cancel函数:
取消消息。
2.3)
onTick函数:
抽象函数,需要子类实现。每个间隔段触发。
2.4)
onFinish函数:
抽象函数,需要子类实现。倒计时结束时回调。
三、
消息处理逻辑:
最后,阅读其消息处理逻辑,并且理解两个抽象函数回调的时间段。
消息处理逻辑:
// handles counting down private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { synchronized (countdowntimer.this) { final long millisLeft = mStopTimeInFuture - SystemClock.elapsedRealtime(); if (millisLeft <= 0) { onFinish(); } else if (millisLeft < mCountdownInterval) { // no tick, just delay until done sendMessageDelayed(obtainMessage(MSG), millisLeft); } else { long lastTickStart = SystemClock.elapsedRealtime(); onTick(millisLeft); // take into account user's onTick taking time to execute long delay = lastTickStart + mCountdownInterval - SystemClock.elapsedRealtime(); // special case: user's onTick took more than interval to // complete, skip to next interval while (delay < 0) delay += mCountdownInterval; sendMessageDelayed(obtainMessage(MSG), delay); } } } };几个关键点:
以上就是关于countdowntimer的全部内容,相信你一定会非常满意。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-8135-1.html
如果战争胜利