美文网首页
android倒计时使用rxJava实现

android倒计时使用rxJava实现

作者: 余炳高笔记 | 来源:发表于2023-02-08 11:00 被阅读0次

使用rxJava实现倒计时60秒

private var disposable: Disposable? =null

/**

*  重新倒计时只需要缓存结束时间 然后调用

*  AppTools.setCache("smsEndTime", "${System.currentTimeMillis() + 60000}")

*/

private fun endTime() {

// 剩余倒计时毫秒值

    val endTime = ("0${AppTools.getCache("smsEndTime")}".toLong() - System.currentTimeMillis())

when {

// 大于0说明距离上次倒计时60s还未倒计时完

        endTime >0 -> {

val count = endTime /1000

            root.code.isEnabled =false

            disposable?.dispose()

disposable = Flowable

// 从0开始 // 到60结束 // 延时0s // 间隔1s

                .intervalRange(0, count, 0, 1, TimeUnit.SECONDS)

.subscribeOn(Schedulers.io())

.observeOn(AndroidSchedulers.mainThread())

.doOnNext{ s: Long->

                    root.code.text ="${count - s}s"

                }

                .doOnComplete{

                    root.code.isEnabled =true

                    root.code.text ="获取验证码"

                }.subscribe()

}

}

}

override fun onDestroy() {

super.onDestroy()

// 销毁倒计时

    disposable?.dispose()

}

相关文章

网友评论

      本文标题:android倒计时使用rxJava实现

      本文链接:https://www.haomeiwen.com/subject/pyrqkdtx.html