User taps a button.
I install an event listener to figure out where (geographically) I am:
LocationHandler() gets called correctly. I figure out where I am and do some other stuff.
Then, I remove the listener:
Then user taps same button. LocationHandler is invoked immediately as before. Some minutes later things happen. When they happen, they do the right stuff, but a five-ten minute delay?
Off to give blood now.