package Ġcom . z ti any . kotlin . coroutines Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . widget . Toast Ċ import Ġcom . z ti any . kotlin . coroutines . ex .* Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . async Ċ import Ġkotlinx . coroutines . delay Ċ import Ġorg . jetbrains . ank o . button Ċ import Ġorg . jetbrains . ank o . scroll View Ċ import Ġorg . jetbrains . ank o . verticalLayout Ċ Ċ /** Ċ Ġ*@ author ĠZ ti any Ċ Ġ* ĠĠĠĠĠ ĠEmail : Ġz ti any 3 @ gmail . com Ċ Ġ* ĠĠĠĠĠ ĠDate Ġ: Ġ 2 0 1 9 - 0 1 - 1 2 Ġ 2 1 : 4 8 Ċ Ġ*/ Ċ class ĠLifecycle Coroutine Ex Sample Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġscroll View Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Layout Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton (" Async ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdemo Async () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton (" Await OrNull ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdemo Await OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton (" Bind ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdemo Bind () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton (" Then ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdemo Then () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton (" Then Async ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdemo Then Async () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdemo Then Async () Ġ{ ĊĠĠĠĠĠĠĠ ĠGlobal Scope . async With Lifecycle ( this , ĠDispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 5 0 0 0 ) Ġ// Ġæ¨¡ æĭŁ èĢĹ æĹ¶çļĦ ç½ĳç»ľ è¯·æ±Ĥ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠ Ġ} Ġthen Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ+ Ġ 2 ĊĠĠĠĠĠĠĠ Ġ} Ġthen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Lifecycle Coroutine Ex Sample Activity , Ġ" the Ġresult Ġis Ġ$ it ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdemo Then () Ġ{ ĊĠĠĠĠĠĠĠ ĠGlobal Scope . async With Lifecycle ( this , ĠDispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 5 0 0 0 ) Ġ// Ġæ¨¡ æĭŁ èĢĹ æĹ¶çļĦ ç½ĳç»ľ è¯·æ±Ĥ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠ Ġ} Ġthen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Lifecycle Coroutine Ex Sample Activity , Ġ" the Ġresult Ġis Ġ$ it ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdemo Bind () Ġ{ ĊĠĠĠĠĠĠĠ ĠGlobal Scope . bind With Lifecycle ( this ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal Scope . async ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeferred 1 Ġ= Ġasync ( Dispatch ers . Default ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeferred 2 Ġ= Ġasync ( Dispatch ers . Default ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdeferred 1 . await () Ġ+ Ġdeferred 2 . await () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Lifecycle Coroutine Ex Sample Activity , Ġ" the Ġresult Ġis Ġ$ result ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdemo Await OrNull () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdeferred Ġ= ĠGlobal Scope . async With Lifecycle ( this , ĠDispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 5 0 0 0 ) Ġ// Ġæ¨¡ æĭŁ èĢĹ æĹ¶çļĦ ç½ĳç»ľ è¯·æ±Ĥ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠGlobal Scope . async With Lifecycle ( this , ĠDispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdeferred . await OrNull ( 4 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Lifecycle Coroutine Ex Sample Activity , Ġ" the Ġresult Ġis Ġ$ result ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdemo Async () Ġ{ ĊĠĠĠĠĠĠĠ ĠGlobal Scope . async With Lifecycle ( this , ĠDispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Lifecycle Coroutine Ex Sample Activity , Ġ" hi , Ġthis Ġmust Ġuse Ġ' Dispatch ers . Main '", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }