亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android使用Kotlin和RxJava 2.×實(shí)現(xiàn)短信驗(yàn)證碼倒計(jì)時(shí)效果

 更新時(shí)間:2017年12月05日 11:51:52   作者:xiaofei_dev  
本篇文章主要介紹了Android使用Kotlin和RxJava 2.×實(shí)現(xiàn)短信驗(yàn)證碼倒計(jì)時(shí)效果,非常具有實(shí)用價(jià)值,需要的朋友可以參考下

本文介紹了Android使用Kotlin和RxJava 2.×實(shí)現(xiàn)短信驗(yàn)證碼倒計(jì)時(shí)效果,分享給大家,具體如下:

場(chǎng)景:注冊(cè)賬號(hào)頁(yè)面時(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)存泄露
//開(kā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線(xiàn)程
    .subscribe(object : Subscriber<Long> {
     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()
     }
    })
 }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論