直播系统代码,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实现倒计时的几种方案, 更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(56)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示