package Ġtop . xu q ing qu an . extension Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Job Ċ import Ġkotlinx . coroutines . launch Ċ import Ġtop . xu q ing qu an . app . Sca ffold Config Ċ import Ġtop . xu q ing qu an . base . view . activity . Simple Activity Ċ import Ġtop . xu q ing qu an . base . view . fragment . Simple Fragment Ċ import Ġkotlin . coroutines . Coroutine Context Ċ Ċ /** Ċ Ġ* ĠCreate Ġby Ġ è®¸ æ¸ħ æ³ ī Ġon Ġ 2 0 2 0 / 6 / 9 Ġ 1 8 : 4 2 Ċ Ġ*/ Ċ Ċ fun Ġ< T > ĠAppCompatActivity . launch ( ĊĠĠĠ Ġcontext : ĠCor outine Context Ġ= Ġlifecycle Scope . coroutine Context , ĊĠĠĠ Ġtry Block : Ġsuspend ĠCor outine Scope . () Ġ-> ĠT , ĊĠĠĠ Ġcatch Block : Ġsuspend ĠCor outine Scope .( Throwable ) Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġfinally Block : Ġsuspend ĠCor outine Scope . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠJob Ġ{ ĊĠĠĠ Ġreturn Ġlifecycle Scope . launch ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Block () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Sca ffold Config . debug ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Block ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this @ launch Ġis ĠSimple Activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Error . post Value ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinally Block () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġ< T > ĠAppCompatActivity . launch ( ĊĠĠĠ Ġcontext : ĠCor outine Context Ġ= Ġlifecycle Scope . coroutine Context , ĊĠĠĠ Ġtry Block : Ġsuspend ĠCor outine Scope . () Ġ-> ĠT Ċ ): ĠJob Ġ{ ĊĠĠĠ Ġreturn Ġlaunch ( context , Ġtry Block , Ġ{}, Ġ{}) Ċ } Ċ Ċ fun Ġ< T > ĠFragment . launch ( ĊĠĠĠ Ġcontext : ĠCor outine Context Ġ= Ġlifecycle Scope . coroutine Context , ĊĠĠĠ Ġtry Block : Ġsuspend ĠCor outine Scope . () Ġ-> ĠT , ĊĠĠĠ Ġcatch Block : Ġsuspend ĠCor outine Scope .( Throwable ) Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġfinally Block : Ġsuspend ĠCor outine Scope . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠJob Ġ{ ĊĠĠĠ Ġreturn Ġlifecycle Scope . launch ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Block () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Sca ffold Config . debug ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Block ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this @ launch Ġis ĠSimple Fragment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Error . post Value ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinally Block () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġ< T > ĠFragment . launch ( ĊĠĠĠ Ġcontext : ĠCor outine Context Ġ= Ġlifecycle Scope . coroutine Context , ĊĠĠĠ Ġtry Block : Ġsuspend ĠCor outine Scope . () Ġ-> ĠT Ċ ): ĠJob Ġ{ ĊĠĠĠ Ġreturn Ġlaunch ( context , Ġtry Block , Ġ{}, Ġ{}) Ċ }