package Ġcom . z ti any . kotlin . coroutines Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġkotlinx . coroutines .* Ċ Ċ /** Ċ Ġ* Ġ[ ä½¿çĶ¨ åįı ç¨ĭ è¿Ľè¡Į ĠUI Ġ ç¼ĸç¨ĭ æĮĩ åįĹ ]( https :// github . com / h lt j / kotlin x . coroutines - cn / blob / master / ui / coroutines - guide - ui . md ) Ċ Ġ* Ċ Ġ* Ġ ç»ĵæŀĦ åĮĸ å¹¶ åıĳ ï¼Į çĶŁåĳ½ åĳ¨æľŁ ä»¥åıĬ åįı ç¨ĭ çĪ¶ åŃĲ å±Ĥ çº§ ç»ĵæŀĦ Ċ Ġ*/ Ċ @ Experimental Cor outines Api Ċ abstract Ġclass ĠScoped App Activity Ġ: ĠAppCompatActivity (), ĠCor outine Scope Ġby ĠMain Scope () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġcancel () Ġ// ĠCor outine Scope . cancel ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ @ Suppress Lint (" Registered ") Ċ @ Experimental Cor outines Api Ċ class ĠTest Activity Ġ: ĠScoped App Activity () Ġ{ ĊĊĠĠĠ Ġfun Ġasync Show Data () Ġ= Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠActivity ĠçļĦ Ġjob Ġ ä½ľä¸º çĪ¶ ç»ĵæŀĦ æĹ¶ ï¼Į è¿ĻéĩĮ å°Ĩ åľ¨ ĠUI Ġä¸Ĭ ä¸ĭ æĸĩ ä¸Ń è¢« è°ĥçĶ¨ ĊĠĠĠĠĠĠĠ Ġ// Ġ å®ŀéĻħ å®ŀçİ° ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġshow IO Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdeferred Ġ= Ġasync ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ å®ŀçİ° ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġdeferred . await () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġåľ¨ ĠUI Ġä¸Ń å±ķç¤º æķ°æį® ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ @ Suppress Lint (" Registered ") Ċ @ Experimental Cor outines Api Ċ class ĠActivity With Present ers Ġ: ĠScoped App Activity () Ġ{ ĊĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠPres enter () ĊĠĠĠĠĠĠĠ Ġval Ġpresenter 2 Ġ= ĠScoped Presenter ( this ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ private Ġclass ĠPres enter Ġ{ ĊĊĠĠĠ Ġsuspend Ġfun Ġload Data () Ġ= Ġcoroutine Scope Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ å¤ĸéĥ¨ Ġactivity ĠçļĦ åµ Į å¥Ĺ ä½ľçĶ¨ åŁŁ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Data ( ui Scope : ĠCor outine Scope ) Ġ= Ġui Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġåľ¨ ĠUI Ġ ä½ľçĶ¨ åŁŁ ä¸Ń è°ĥçĶ¨ ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ private Ġclass ĠScoped Presenter ( scope : ĠCor outine Scope ) Ġ: ĠCor outine Scope Ġby Ġscope Ġ{ ĊĊĠĠĠ Ġfun Ġload Data () Ġ= Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ ä½ľä¸º ĠActivity With Present ers ĠçļĦ ä½ľçĶ¨ åŁŁ çļĦ æī©å±ķ ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ private Ġsuspend Ġfun ĠCor outine Scope . launch In IO () Ġ= Ġlaunch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠ Ġ// Ġåľ¨ è°ĥçĶ¨ èĢħ çļĦ ä½ľçĶ¨ åŁŁ ä¸Ń åĲ¯åĬ¨ ï¼Į ä½Ĩ ä½¿çĶ¨ ĠIO Ġ è°ĥ åº¦ åĻ¨ Ċ }