package Ġcom . example . https ender Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . rx Life Scope Ċ import Ġcom . example . https ender . entity . Article Ċ import Ġcom . example . https ender . entity . Page List Ċ import Ġcom . rx java . rx life . Scope ViewModel Ċ import Ġcom . rx java . rx life . life On Main Ċ import Ġio . reactivex . Observable Ċ import Ġkotlinx . coroutines . Timeout Cancellation Exception Ċ import Ġrx http . retry Ċ import Ġrx http . timeout Ċ import Ġrx http . wrapper . param . Rx Http Ċ import Ġrx http . wrapper . param . await Response Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ /** Ċ Ġ* ĠUser : Ġl jx Ċ Ġ* ĠDate : Ġ 2 0 1 9 - 0 5 - 3 1 Ċ Ġ* ĠTime : Ġ 2 1 : 5 0 Ċ Ġ*/ Ċ class ĠMy ViewModel ( application : ĠApplication ) Ġ: ĠScope ViewModel ( application ) Ġ{ ĊĊĠĠĠ Ġfun Ġstart Interval () Ġ{ ĊĠĠĠĠĠĠĠ ĠObservable . interval ( 1 , Ġ 1 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. life On Main ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĠLog . e (" L JX ", Ġ" My ViewModel Ġa Long =$ it ") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Retry () Ġ= Ġrx Life Scope . launch ({ ĊĠĠĠĠĠĠĠ Ġval Ġpage List Ġ= ĠRx Http . get ("/ article / list / 0 / json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. timeout ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. retry ( 2 , Ġ 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġis ĠTimeout Cancellation Exception ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. await Response < Page List < Article >>() ĊĠĠĠĠĠĠĠ ĠLog . e (" L JX ", Ġ" page List =$ page List ") ĊĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e (" L JX ", Ġ" it =$ it ") ĊĠĠĠ Ġ}) Ċ }