I reviewed the CacheWord code and now I think we are using it slightly wrong.  We should create the CacheWordActivityHandler in onResume instead of onCreate.

The reason for this is that the API for CacheWord assumes that it's disconnected while the activity is paused.  Between onCreate and onResume, the activity is considered paused yet CacheWord automatically connects in the constructor.   This is the root reason that cacheword fails to be disconnected sometimes - that happens when onCreate calls finish and onResume/onPause are never called.

I recommend that we move the creation of the handler to onResume (with a check if it's not been created already).  We should also loop in Abe Luck to advise.