直播系统代码,Android实现倒计时的几种方案
直播系统代码,Android实现倒计时的几种方案
一、CountDownTimer的实现
1 | //倒计时的方式一<br> fun countDownTimer() {<br> var num = 60<br> timer = object : CountDownTimer((num + 1) * 1000L, 1000L) {<br> override fun onTick(millisUntilFinished: Long) {<br> YYLogUtils.w("当时计数:" + num)<br> if (num == 0) {<br> YYLogUtils.w("重新开始")<br> num = 60<br> } else {<br> num--<br> }<br> }<br> override fun onFinish() {<br> YYLogUtils.w("倒计时结束了..." + num)<br> }<br> }<br> timer?.start()<br> }<br>private var timer: CountDownTimer? = null<br>override fun onDestroy() {<br> super.onDestroy()<br> timer?.cancel()<br>} |
没什么花活,就是android.os包下面的 CountDownTimer 类的使用。内部实现使用了 Handler 进行封装。
二、直接用Handler的实现
1 | private var handlerNum = 60<br> private val mHandler = object : Handler(Looper.getMainLooper()) {<br> override fun handleMessage(msg: Message) {<br> when (msg.what) {<br> 1 -> {<br> if (handlerNum > 0) {<br> handlerNum--<br> YYLogUtils.w( "当时计数:" + handlerNum)<br> countDownHander()<br> } else {<br> stopCountDownHander()<br> }<br> }<br> }<br> }<br> }<br> override fun onDestroy() {<br> super.onDestroy()<br> stopCountDownHander()<br> <br> }<br> fun countDownHander() {<br> mHandler.sendEmptyMessageDelayed(1, 1000)<br> }<br> fun stopCountDownHander() {<br> mHandler.removeCallbacksAndMessages(null)<br> } |
我们可以直接使用Handler的延时发送消息实现倒计时。
当然另一种做法是使用 Runnable 来实现。
1 | <br>Handler handler = new Handler();<br>Runnable runnable = new Runnable() {<br>@Override<br> public void run() {<br>recLen++;<br>txtView.setText( "" + recLen);<br>handler.postDelayed(this, 1000);<br>}<br> public void test(){<br> handler.postDelayed(runnable, 1000);<br>} |
三、直接用Time、TimeTask的实现
以上是Android的倒计时方案,其实Java的Api也是支持倒计时实现的,比如 Timer 配合 TimerTask 就可以实现简单的倒计时。
1 | <br> fun countDownTimer2() {<br> var num = 60<br> val timer = Timer()<br> val timeTask = object : TimerTask() {<br> override fun run() {<br> num--<br> YYLogUtils.w( "当时计数:" + num)<br> if (num < 0) {<br> timer.cancel()<br> }<br> }<br> }<br> timer.schedule(timeTask, 1000, 1000)<br> } |
以上就是直播系统代码,Android实现倒计时的几种方案, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现