package Ġcom . sensor berg . execution er . sample Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Button Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . sensor berg . execution er . Execution er . POOL Ċ import Ġcom . sensor berg . execution er . Execution er . SINGLE Ċ import Ġcom . sensor berg . execution er . Execution er . UI Ċ import Ġcom . sensor berg . execution er . Execution er . run On Ċ Ċ /** Ċ Ġ* ĠVery Ġpoint less Ġsample Ġon Ġhow Ġto Ġuse Ġexecution er . Ċ Ġ* ĠDon 't Ġrun Ġit Ġon ĠActivity . ĠUse Ġa ĠViewModel . Ċ Ġ*/ Ċ class ĠSample Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġfun ĠString . log () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Execution er ", Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ sample ) ĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn 1 )?. let Ġ{ Ġsetup Sample 1 ( it ) Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn 2 )?. let Ġ{ Ġsetup Sample 2 ( it ) Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn 3 )?. let Ġ{ Ġsetup Sample 3 ( it ) Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn 4 )?. let Ġ{ Ġsetup Sample 4 ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Sample 1 ( button : ĠButton ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbutton . text Ġ= Ġ" Sample Ġ 1 Ġ- ĠRun Ġon ĠUI Ġthread " ĊĠĠĠĠĠĠĠ Ġbutton . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun On ( UI ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Ġ 1 , Ġexecuted Ġon ĠUI Ġthread ". log () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Sample 2 ( button : ĠButton ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbutton . text Ġ= Ġ" Sample Ġ 2 Ġ- ĠRun Ġon ĠSingle Ġbackground Ġthread , Ġthen ĠUI " ĊĠĠĠĠĠĠĠ Ġbutton . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun On ( SINGLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Ġ 2 , Ġexecuting Ġon Ġa Ġsingle Ġbackground Ġthread .". log () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 6 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Ġ 2 , Ġthis Ġjust Ġblocked Ġthe Ġsingle Ġbackground Ġthread Ġfor Ġ 6 0 0 ms , Ġdon 't Ġthat ". log () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. and Then ( UI ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Ġ 2 , Ġnow Ġruns Ġon ĠUI Ġthread , Ġbut Ġonly Ġafter Ġthe Ġbackground Ġexecution ". log () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Sample 3 ( button : ĠButton ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbutton . text Ġ= Ġ" Sample Ġ 3 Ġ- Ġ 1 0 x Ġ( Run Ġon Ġthread Ġpool , Ġthen Ġsingle Ġbackground )" ĊĠĠĠĠĠĠĠ Ġbutton . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexecution er Ġ= Ġrun On ( POOL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Ġ 3 , Ġrunning Ġon Ġa Ġthread Ġpool . ĠPart Ġ$ it ". log () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ== Ġ 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecution er . and Then ( SINGLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Ġ 3 , Ġafter Ġ 5 th Ġexecution , Ġthis Ġruns Ġon Ġthe Ġsingle Ġbackground Ġthread ". log () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Sample 4 ( button : ĠButton ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbutton . text Ġ= Ġ" Sample Ġ 3 Ġ- ĠLet 's Ġgo Ġcr azy !" ĊĠĠĠĠĠĠĠ Ġbutton . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun On ( SINGLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Ġ 4 , Ġrunning Ġon Ġsingle Ġbackground ". log () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. and Then ( POOL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Ġ 4 , Ġand Ġthen Ġrunning Ġon Ġthread Ġpool ". log () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. and Then ( SINGLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Ġ 4 , Ġand Ġthen Ġrunning Ġon Ġsingle Ġbackground ". log () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. and Then ( POOL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Ġ 4 , Ġand Ġthen Ġrunning Ġon Ġthread Ġpool ". log () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. and Then ( UI ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Ġ 4 , Ġand Ġthen Ġrunning Ġon ĠUI Ġthread ". log () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. and Then ( SINGLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sample Ġ 4 , Ġand Ġthen Ġrunning Ġon Ġsingle Ġbackground ". log () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ