I\'m messing with Android services, and I have found that ServiceConnection.onServiceConnected() gets called fairly predictably when I bind to a service.
It happens upon remote service crash. So, if a service running in a different process than your client fails on some exception, you lose the connection and get the callback.