package Ġcom . t atu as . android . ne ot ask sample Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . support . v 4 . app . Job Intent Service Ċ import Ġandroid . widget . Toast Ċ import Ġcom . t atu as . android . ne ot ask .* Ċ Ċ class ĠMy Job Intent Service Ġ: ĠJob Intent Service () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠJOB _ ID Ġ= Ġ 4 ĊĊĠĠĠĠĠĠĠ Ġfun Ġenqueue Work ( context : ĠContext , Ġwork : ĠIntent Ġ= ĠIntent ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenqueue Work ( context , ĠMy Job Intent Service :: class . java , ĠJOB _ ID , Ġwork ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Handle Work ( intent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ ĠMy Utils . log (" Job Intent Service ĠStart : Ġ${ Thread . currentThread () }") ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠNeo Task . await Sequential ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNeo Task . async Ġ{ Ġ" result 1 " Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĠNeo Task . async Ġ{ Ġit Ġ+ Ġ" result 2 " Ġ} Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĠNeo Task . async Ġ{ Ġit Ġ+ Ġ" result 3 " Ġ} Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĠNeo Task . async Ġ{ Ġit Ġ+ Ġ" result 4 " Ġ} Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĠNeo Task . async Ġ{ Ġit Ġ+ Ġ" result 5 " Ġ} Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Utils . log ( result ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠNeo Task . blocking Ġ{ ĠMy Utils . sleep () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Await Ġ{ ĠMy Utils . create Void Task (). to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Utils . log (" start : 1 Ġ${ Thread . currentThread () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Utils . sleep () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Utils . log (" stop : 1 Ġ${ Thread . currentThread () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ it , Ġstring 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Utils . log (" start : 2 Ġ${ Thread . currentThread () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Utils . sleep () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Utils . log (" stop : 2 Ġ${ Thread . currentThread () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ it Ġ, string 3 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Blocking Complete Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Utils . log (" listener : Ġ${ Thread . currentThread () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Utils . log (" result : Ġ${ it . result }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Utils . log (" exception : Ġ${ it . exception }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠMy Utils . log (" Job Intent Service ĠStop : Ġ${ Thread . currentThread () }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Job Ġdone ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} Ċ } Ċ