On Android you can use UnifiedPush so just one app gets background permissions and it wakes everything else up. Chat apps are starting to support it