国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android使用Kotlin和RxJava 2.×實現短信驗證碼倒計時效果

2019-12-12 01:32:15
字體:
來源:轉載
供稿:網友

本文介紹了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()     }    }) }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 土默特左旗| 鹤山市| 新郑市| 安丘市| 庆云县| 大丰市| 滕州市| 浦东新区| 大英县| 伊川县| 措勤县| 钦州市| 通江县| 申扎县| 蒙阴县| 万宁市| 即墨市| 湘潭县| 桓仁| 会宁县| 锡林郭勒盟| 南京市| 军事| 大新县| 上栗县| 张家口市| 奎屯市| 南靖县| 阳山县| 邻水| 安溪县| 锦州市| 阿拉善盟| 哈密市| 岳阳县| 微山县| 喀喇沁旗| 深水埗区| 阿合奇县| 方城县| 台中市|