新聞中心
本文介紹了Android使用Kotlin和RxJava 2.×實(shí)現(xiàn)短信驗(yàn)證碼倒計(jì)時(shí)效果,分享給大家,具體如下:
在龍巖等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè)公司,龍巖網(wǎng)站建設(shè)費(fèi)用合理。
場景:注冊(cè)賬號(hào)頁面時(shí),我們點(diǎn)擊按鈕發(fā)送驗(yàn)證碼,在等待驗(yàn)證碼時(shí),界面會(huì)有倒計(jì)時(shí)提示,這此期間按鈕不可點(diǎn)擊。當(dāng)?shù)褂?jì)時(shí)結(jié)束時(shí),按鈕恢復(fù)。
實(shí)現(xiàn)代碼
val timer:TextView = findViewById(R.id.textView) //這里的 timer 就是你要控制顯示倒計(jì)時(shí)效果的 TextView val mSubscription: Subscription? = null // Subscription 對(duì)象,用于取消訂閱關(guān)系,防止內(nèi)存泄露 //開始倒計(jì)時(shí),用 RxJava2 實(shí)現(xiàn) private fun timer() { val count = 59L Flowable.interval(0, 1, TimeUnit.SECONDS)//設(shè)置0延遲,每隔一秒發(fā)送一條數(shù)據(jù) .onBackpressureBuffer()//加上背壓策略 .take(count) //設(shè)置循環(huán)次數(shù) .map{ aLong -> count - aLong // } .observeOn(AndroidSchedulers.mainThread())//操作UI主要在UI線程 .subscribe(object : Subscriber{ override fun onSubscribe(s: Subscription?) { timer.isEnabled = false//在發(fā)送數(shù)據(jù)的時(shí)候設(shè)置為不能點(diǎn)擊 timer.textColor = resources.getColor(Color.GRAY)//背景色設(shè)為灰色 mSubscription = s s?.request(Long.MAX_VALUE)//設(shè)置請(qǐng)求事件的數(shù)量,重要,必須調(diào)用 } override fun onNext(aLong: Long?) { timer.text = "${aLong}s后重發(fā)" //接受到一條就是會(huì)操作一次UI } override fun onComplete() { timer.text = "點(diǎn)擊重發(fā)" timer.isEnabled = true timer.textColor = Color.WHITE mSubscription?.cancel()//取消訂閱,防止內(nèi)存泄漏 } override fun onError(t: Throwable?) { t?.printStackTrace() } }) }
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
文章標(biāo)題:Android使用Kotlin和RxJava2.×實(shí)現(xiàn)短信驗(yàn)證碼倒計(jì)時(shí)效果
URL分享:http://fisionsoft.com.cn/article/goieih.html