rsend code in timer kotlin code example

Example: rsend code in timer kotlin

val timer:textview=findviewbyid (r.id.textview) //The timer here is the textview i want to control to display the countdownval msubscription:subscription?= null //subscription object, used to unsubscribe,Preventing memory leaks//Start the countdown,Implemented with rxjava2 private fun timer () {  val count=59l  flowable.interval (0, 1, timeunit.seconds) //Set 0 delay, send one data every one second    .onbackpressurebuffer () //plus backpressure strategy    .take (count) //Set the number of loops    .map {along->     count-along //    }    .observeon (androidschedulers.mainthread ()) //Operation ui is mainly in ui thread    .subscribe (object:subscriber<long>{     override fun onsubscribe (s:subscription?) {      timer.isenabled=false //Set as not clickable when sending data      timer.textcolor=resources.getcolor (color.gray) //The background color is set to gray      msubscription=s      s?.request (long.max_value) //Set the number of request events,Important, must call     }     override fun onnext (along:long?) {      timer.text="Resend after ${along} s" //After receiving one, it will operate once ui     }     override fun oncomplete () {      timer.text="click to resend"      timer.isenabled=true      timer.textcolor=color.white      msubscription?.cancel () //Cancel subscription,Preventing memory leaks     }     override fun onerror (t:throwable?) {      t?.printstacktrace ()     }    }) }

Tags:

Misc Example