The sendPending() call here is exactly the same as the code that was in the WAKEUP_NOTIFICATION - it is just moved to another method, and then this method gets called when isAwake(true) gets called.

This shouldn't make any change to the way that it worked before (if I remove the sendPending() as described above). The code has just moved into a separate method?

The reason for changing this is the a WAKEUP_NOTIFICATION is not the only way that a wakeup can occur - this is also implemented this way in OZW. If the application receives an application notification, this now also calls isAlive(true) which will also do the same as if a WAKEUP_NOTIFICATION was received.

Can you suggest what you want changed?