package Ġcom . example . rx demo 1 Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Observer Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . ob servers . Disposable Observer Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ // composite Ġdis posable Ġand Ġsubscribe With Ċ class ĠMainActivity 2 Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġg reeting Ġ= Ġ" Hello ĠFrom ĠRx Java " ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmy Observable Ġ: ĠObservable < String > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmy Observer : ĠDis posable Observer < String > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmy Observer 2 : ĠDis posable Observer < String > ĊĊĠĠĠ Ġprivate Ġval Ġcomposite Disposable Ġ= ĠComposite Disposable () Ġ// when Ġyou Ġwant Ġto Ġdispose Ġmultiple Ġob servers Ġwith Ġjust Ġone Ġcall ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTAG Ġ= Ġ" MainActivity 2 " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main 2 ) ĊĊĠĠĠĠĠĠĠ Ġmy Observable Ġ= ĠObservable . just ( greeting ) Ċ // ĠĠĠĠĠĠĠ Ġmy Observable . subscribe On ( Schedulers . io ()) ĠĠ Ġ// operators Ġwill Ġalso Ġbe Ġdone Ġon ĠIO Ċ // ĠĠĠĠĠĠĠ Ġmy Observable . observe On ( Android Schedulers . main Thread ()) ĊĊĊĠĠĠĠĠĠĠ Ġmy Observer Ġ= Ġobject Ġ: ĠDis posable Observer < String > (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" onComplete ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Next ( s : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" onNext ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , Ġs , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" onError ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( ĊĠĠĠĠĠĠĠ Ġmy Observable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe With ( my Observer )) Ċ Ċ // ĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( my Observer ) ĊĊĠĠĠĠĠĠĠ Ġmy Observer 2 Ġ= Ġobject Ġ: ĠDis posable Observer < String > (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" onComplete ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Next ( s : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" onNext ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , Ġs , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" onError ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( my Observable . subscribe With ( my Observer 2 )) Ċ Ċ // ĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( my Observer 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . clear () Ġ// just Ġone Ġline Ġto Ġclear Ġmultiple Ġdis pos ables ĊĠĠĠ Ġ} Ċ } Ċ