Those bizarre hacks help the service don't crash when the service needs to talk back to an activity that just got replaced between request/response cycle, because the user had the strange idea to rotate the phone.
If you had just used a static there'd be no need to talk to the activity directly. The bizarre hacks tend to arise because Java devs seem to consider static globals as icky.