Android UI elements can be destroyed and recreated at any time, and they
can only store serialisable state, so references to long-running tasks
have to take the form of serialisable handles. This is pretty ugly -
it's easy to create memory leaks if you don't clean up stale
handle/reference mappings - but it's less ugly than the common solution
of using static variables to hold references.