package Ġcom . a ite . smart lib Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Log Ċ import Ġcom . a ite . smart lib . service . Keep Live Service Ċ import Ġcom . a ite . smart lib . service . Remote Service Ċ import Ġcom . a ite . smart lib . service . Timing Service Ċ import Ġcom . a ite . smart lib . utils . Util Function Ċ import Ġcom . a ite . smart lib . utils . start Foreground Service S af ely Ċ import Ġcom . a ite . smart lib . utils . start Service S af ely Ċ import Ġcom . a ite . smart lib . utils . stop Service S af ely Ċ Ċ @ Suppress Lint (" Static Field Leak ") Ċ private Ġvar ĠmContext : ĠContext ? Ġ= Ġnull Ċ Ċ // Ġ ç´ § è·Ł çĿĢ Application çļĦ super . onCreate () ä¸ĭ è°ĥçĶ¨ ãĢĤ Ċ fun Ġinit ( context : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠ ĠmContext Ġ= Ġcontext . application Context ĊĠĠĠ Ġreturn ĠUtil Function . is Main Process ( context ) Ċ } Ċ Ċ // Ġåľ¨ ä¸» è¿Ľç¨ĭ ä¸Ń è°ĥçĶ¨ Ċ fun Ġstart Keep Live Service () Ġ{ ĊĠĠĠ Ġval Ġcontext Ġ= ĠmContext . assertNull () ĊĠĠĠ Ġif Ġ( Util Function . is Main Process ( context )) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠKeep Live Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . start Foreground Service S af ely ( intent ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . start Service S af ely ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // Ġåľ¨ ä¸» è¿Ľç¨ĭ ä¸Ń è°ĥçĶ¨ ãĢĤ Ċ fun Ġstop Keep Live Service () Ġ{ ĊĠĠĠ Ġval Ġcontext Ġ= ĠmContext . assertNull () ĊĠĠĠ Ġif Ġ( Util Function . is Main Process ( context )) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop Service S af ely ( Intent ( this , ĠT iming Service :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop Service S af ely ( Intent ( this , ĠRemote Service :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop Service S af ely ( Intent ( this , ĠKeep Live Service :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun Ġlogger ( message : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġcontext Ġ= ĠmContext . assertNull () ĊĠĠĠ Ġif Ġ( Util Function . isDebug ( context )) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" Keep Live ", Ġmessage ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠContext ?. assertNull (): ĠContext Ġ{ ĊĠĠĠ Ġreturn Ġthis Ġ?: Ġthrow ĠIllegalStateException (" please Ġinit Ġfirst ") Ċ }