Когда приходит пуш - программа не запускается, до тех пор пока юзер не ткнет пальцем в этот пуш.
Если нужно в фоне что то делать и нужно это делать именно сейчас и этого нельзя сделать когда вернется пользователь и запустит программу, тогда нужен сервис. Лучше конечно стараться делать без сервисов, т.к. легче будет портировать на iOS.