Polling would be the best bet because if you do SMS it will also effect the user’s data usage (if they have any).
Now, if you poll every second while the service runs yes, it will drain the battery bad. However, if you poll every minute or longer it will not be as bad. Usually 10-15 minutes should be good unless its a critical need.
None of those options is the best, and polling is obviously not ‘push’.
The best option for actual push notifications is “Google Cloud Messaging” which is a free Google service, which, unlike polling, allows you to have almost real-time data updates without draining users’ battery.
Here’s the official page:
Google Cloud Messaging for Android