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 () } }) }