package Ġpl . mg 6 . demo . dispose on destroy Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . FragmentManager . POP _ BACK _ STACK _ INCL USIVE Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . util . Log Ċ import Ġio . reactivex . Observable . interval Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers . main Thread Ċ import Ġkotlinx . android . synt hetic . main . demo _ activity .* Ċ import Ġpl . mg 6 . rx java 2 . dispose on destroy . dispose On Destroy Ċ import Ġjava . util . concurrent . TimeUnit . SECONDS Ċ Ċ class ĠDemo Activity Ġ: ĠAppCompatActivity (), ĠDemo Fragment . Listener Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . demo _ activity ) ĊĠĠĠĠĠĠĠ Ġstart Counter () ĊĠĠĠĠĠĠĠ Ġstart . setOnClickListener Ġ{ Ġshow Demo Fragment () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Counter () Ġ{ ĊĠĠĠĠĠĠĠ Ġinterval ( 1 L , Ġ 7 L , ĠSE CON DS , Ġmain Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Dispose Ġ{ ĠLog . i (" Demo Activity ", Ġ" counter Ġdisposed ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. dispose On Destroy ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( this :: update Counter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Counter ( value : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . i (" Demo Activity ", Ġ" counter Ġvalue : Ġ$ value ") ĊĠĠĠĠĠĠĠ Ġcounter . text Ġ= Ġvalue . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Demo Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . pop Back Stack ( null , ĠPOP _ BACK _ STACK _ INCL USIVE ) ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . container , ĠDemo Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cancel () Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. remove ( support FragmentManager . find Fragment ById ( R . id . container )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon De eper () Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . container , ĠBlack Hole Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . i (" Demo Activity ", Ġ" before Ġsuper . on Destroy ") ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ ĠLog . i (" Demo Activity ", Ġ" after Ġsuper . on Destroy ") ĊĠĠĠ Ġ} Ċ } Ċ