When the refresh button is clicked in the navigation drawer, then startPushService is executed which registers the handler. The WebSocketService itself is reused, thus isn't created again or destroyed. From my tests the callback isn't registered twice after the refresh. Thus, I'd expect the unregister isn't needed at all because android somehow does this automagically.