package Ġcom . ail len . shop mall . module . as yn work Ċ Ċ import Ġandroid . os . Looper Ċ import Ġandroid . os . Message Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġan long long Ġon Ġ 2 0 1 8 / 5 / 3 1 . Ċ Ġ* ĠEmail ï¼ļ Ġ 9 4 0 7 5 2 9 4 4 @ qq . com Ċ Ġ*/ Ċ abstract Ġclass ĠTask Runnable < T >( result : ĠResult < T >) Ġ: ĠRunnable Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Result : ĠResult < T > Ġ= Ġresult ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġ Ġm Thread Handler : Thread Handler < T > ĊĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Result . m Thread Handler Ġ== ĠThread Holder . MAIN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Main Msg () ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Sub Thread Work () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Sub Thread Work () Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġt : ĠT Ġ= Ġdo Work () ĊĠĠĠĠĠĠĠ Ġm Result . set Success ( t ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" error Ġmsg Ġ= Ġ${ e . message }") ĊĠĠĠĠĠĠĠ Ġm Result . setError ( e ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Main Msg () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Thread Handler Ġ= ĠThread Handler ( m Result , ĠL ooper . get Main Looper ()) ĊĠĠĠĠĠĠĠ Ġval Ġmessage : ĠMessage Ġ= Ġm Thread Handler . obtain Message () ĊĠĠĠĠĠĠĠ Ġm Thread Handler . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt : ĠT Ġ= Ġdo Work () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . what Ġ= Ġm Result . m Thread Handler . code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . obj Ġ= Ġt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . what Ġ= ĠThread Holder . ERROR . code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . obj Ġ= Ġe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġdo Work (): ĠT Ċ }