I guess GitHub doesn't let you comment on lines that are in the neighborhood of a change =( So I will just write some questions here...

What is KILL_WORKER used for? It's not exposed in the public API. Is this just for testing?

In the constructor for Worker(), can we just inline restartWorkerThread() since we never call it from anywhere else, and it's not exposed? Customers should never be trying to restart our worker thread anyways right?

Do we need mHandlerLock? Seems like we just need a constant, shared reference to lock on, so can we use synchronized(this)?

In the code for KILL_WORKER, we just set mHandler to null--I'm not convinced that Android will garbage collect the thread object just like that...regardless, I think it would be more correct to call mHandler.quit() beforehand.