Başka senaryolar olacaktır ancak benim aklıma GCM ile şöyle bir senaryo geldi:
-Uygulamanızı Google Cloud API ile konuşur bir hale getirmeniz gerekir. Dolayısıyla bir sunucu ihtiyacınız doğacak. Sunucunuzdan GCM'ye, oradan da GCM'ye kendini uygulamanız sayesinde kaydetmiş cihazlara ileti gönderebilesiniz diye.
-Uygulamanızın, kullanıcının cihazına kurulu Google Play Services sayesinde GCM'den gelen mesajları alabilecek bir BroadCastReceiver'ı olmalı ki GCM kullanacaksanız bu zorunlu. (Bkz: Implementing GCM Client)
-Bu Receiver'a gelen mesaja göre bir Service'ı ayağa kaldırabilirsiniz.
-Yazacağınız bu Service sınıfı ile tabi gerekli izinleri de aldıysanız istediğiniz bilgiyi uzaktaki bir sunucuya gönderebilirsiniz.
GCM size karışık gelecekse, HTML5'teki WebSocket'e benzer bir yapıyı yalnızca sunucunuz ile kendi uygulamanız arasında olacak şekilde kurabilirsiniz. Uygulamanız, sunucunuz ile bir soket bağlantısı oluşturur ve cihazı sürekli ayakta tutar. Tabi eğer böyle gerekiyorsa. Belki cihaz uyurken onu ayakta tutma zorunluluğunuz yoktur (Aksi halde WAKE_LOCK iznini almanız gerekecektir) Sunucu bir veri gönderdiğinde uygulamanız ona göre eylem yapar.
Burada daha çok BroadcastReceiver ile Service ve onun IntentService gibi doğrudan alt sınıflarını kullanmanız gerekecektir ağırlıkla.