package Ġcom . rx java 2 . android . samples . ui . operators Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . rx java 2 . android . samples . R Ċ import Ġcom . rx java 2 . android . samples . utils . App Constant Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ Ċ import Ġio . reactivex . ob servers . Disposable Observer Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġkotlinx . android . synt hetic . main . activity _ example .* Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġa mit she k har Ġon Ġ 2 7 / 0 8 / 1 6 . Ċ Ġ*/ Ċ class ĠInterval Example Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġ// var Ġbtn : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġ// var ĠtextView : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġdis pos ables : ĠComposite Disposable ? Ġ= ĠComposite Disposable () ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ example ) ĊĠĠĠĠĠĠĠ Ġ// btn Ġ= ĠfindViewById < Button ? >( R . id . btn ) ĊĠĠĠĠĠĠĠ Ġ// textView Ġ= ĠfindViewById < TextView ? >( R . id . textView ) ĊĠĠĠĠĠĠĠ Ġbtn !!. setOnClickListener Ġ{ Ġdo Some Work () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġdis pos ables !!. clear () Ġ// Ġclearing Ġit Ġ: Ġdo Ġnot Ġemit Ġafter Ġdestroy ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* Ġsimple Ġexample Ġusing Ġinterval Ġto Ġrun Ġtask Ġat Ġan Ġinterval Ġof Ġ 2 Ġsec ĊĠĠĠĠ Ġ* Ġwhich Ġstart Ġimmediately ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdo Some Work () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis pos ables !!. add ( get Observable () Ġ// ĠRun Ġon Ġa Ġbackground Ġthread ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ!! . subscribe On ( Schedulers . io ()) Ġ// ĠBe Ġnotified Ġon Ġthe Ġmain Ġthread ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ!! . observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ!! . subscribe With ( get Observer () !! )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Observable (): ĠObservable < out ĠLong ?> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . interval ( 0 , Ġ 2 , ĠTimeUnit . SECONDS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Observer (): ĠDis posable Observer < Long > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠDis posable Observer < Long >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Next ( value : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView !!. append (" Ġon Next Ġ: Ġvalue Ġ: Ġ$ value ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView !!. append ( App Constant . LINE _ SEPARATOR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Ġon Next Ġ: Ġvalue Ġ: Ġ$ value ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView !!. append (" ĠonError Ġ: Ġ" Ġ+ Ġe . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView !!. append ( App Constant . LINE _ SEPARATOR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ĠonError Ġ: Ġ" Ġ+ Ġe . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView !!. append (" ĠonComplete ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView !!. append ( App Constant . LINE _ SEPARATOR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" ĠonComplete ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠInterval Example Activity :: class . java . simple Name ĊĠĠĠ Ġ} Ċ }