Android使用Kotlin和RxJava 2.×实现短信验证码倒计时效果

Android使用Kotlin和RxJava 2.×实现短信验证码倒计时效果,第1张

概述本文介绍了Android使用Kotlin和RxJava2.×实现短信验证码倒计时效果,分享给大家,具体如下:

本文介绍了AndroID使用Kotlin和RxJava 2.×实现短信验证码倒计时效果,分享给大家,具体如下:

场景:注册账号页面时,我们点击按钮发送验证码,在等待验证码时,界面会有倒计时提示,这此期间按钮不可点击。当倒计时结束时,按钮恢复。

实现代码

val timer:TextVIEw = findVIEwByID(R.ID.textVIEw) //这里的 timer 就是你要控制显示倒计时效果的 TextVIEw val mSubscription: Subscription? = null // Subscription 对象,用于取消订阅关系,防止内存泄露//开始倒计时,用 RxJava2 实现 private fun timer() {  val count = 59L  Flowable.interval(0,1,TimeUnit.SECONDS)//设置0延迟,每隔一秒发送一条数据    .onBackpressureBuffer()//加上背压策略    .take(count) //设置循环次数    .map{ aLong ->     count - aLong //    }    .observeOn(AndroIDSchedulers.mainThread())// *** 作UI主要在UI线程    .subscribe(object : Subscriber<Long> {     overrIDe fun onSubscribe(s: Subscription?) {      timer.isEnabled = false//在发送数据的时候设置为不能点击      timer.textcolor = resources.getcolor(color.GRAY)//背景色设为灰色      mSubscription = s      s?.request(Long.MAX_VALUE)//设置请求事件的数量,重要,必须调用     }     overrIDe fun onNext(aLong: Long?) {      timer.text = "${aLong}s后重发" //接受到一条就是会 *** 作一次UI     }     overrIDe fun onComplete() {      timer.text = "点击重发"      timer.isEnabled = true      timer.textcolor = color.WHITE      mSubscription?.cancel()//取消订阅,防止内存泄漏     }     overrIDe fun onError(t: Throwable?) {      t?.printstacktrace()     }    }) }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Android使用Kotlin和RxJava 2.×实现短信验证码倒计时效果全部内容,希望文章能够帮你解决Android使用Kotlin和RxJava 2.×实现短信验证码倒计时效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1143483.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存