package Ġcom . k ronos . android . startup . sample . task Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . util . Log Ċ import Ġcom . k ronos . lib . startup .* Ċ import Ġjava . lang . Thread . sleep Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ġ Ġ@ Author ĠLi AB ao Ċ Ġ* Ġ Ġ@ Since Ġ 2 0 2 1 / 1 1 / 2 6 Ċ Ġ* Ċ Ġ*/ Ċ fun ĠApplication . create Startup (): ĠStartup . Builder Ġ= Ġrun Ġ{ ĊĠĠĠ Ġstart Up ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Task Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Task (" task A ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo (" task A ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd Task Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Task (" task B ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo (" task B ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd Task Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Task (" task C ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo (" task C ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd Task Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Task Builder (" task D ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo (" task D ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepend On (" task C ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuild Anchor Task Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Anchor Task () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd Task Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasync Task (" async Task A ", Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo (" async Task A ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepend On (" async Task D ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmust After Anchor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasync Task (" async Task B ", Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo (" async Task B ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepend On (" async Task A ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġawait Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmust After Anchor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasync Task Builder (" async Task C ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo (" async Task C ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsleep ( 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġawait Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepend On (" async Task E ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmust After Anchor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasync Task (" async Task D ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo (" async Task D ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsleep ( 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmust After Anchor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasync Task (" async Task E ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo (" async Task E ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsleep ( 1 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd Task Group Ġ{ Ġtask Group () Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // Ġ åĲ¯åĬ¨ ä»»åĬ¡ ç»Ħ Ċ fun Ġtask Group (): ĠStartup Task Group Ġ{ ĊĠĠĠ Ġreturn Ġstartup Task Group Ġ{ ĊĠĠĠĠĠĠĠ Ġadd ( simple Task (" group _ 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo (" group _ 1 ") ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġadd ( simple Task (" group _ 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo (" group _ 2 ") ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġinfo ( info : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġthread Name Ġ= ĠThread . currentThread (). name ĊĠĠĠ ĠLog . i ( TAG , Ġ"[ thread Name :$ thread Name ] Ġ$ info ") Ċ } Ċ Ċ const Ġval ĠTAG Ġ= Ġ" START - DSL âĢĶ TEST "