istek üzerine arkaplanda çalışan servis

Merhabalar,
ilgili bir metodu dışarıda istek geldiğinde arkaplanda nasıl çalışmasını sağlayabilirim acaba ?
yani ben cihaz'a dışardan bir istek göndermek istiyorum ve bu istek cihaz'a ulaştığında arkaplanda benim yazmıs oldugum belli bir metodu çağıracak.

yardımlarınız için şimdiden teşekkürler.

cgural

Pzt, 06/01/2014 - 14:51
Dışarıdan gelecek isteği hangi yolla cihaza ulaştıracağınız konusunda kafanızda bir şey var mı? Cloud Messaging gibi bir yapı mı yoksa başka bir uygulamanın tetikleyeceği durumla mı istek gelmiş olacak?

ersinayaz

Pzt, 06/01/2014 - 15:07
sanırım uygulamam gereken yöntem cloud messaging. tam anlamıyla istedigim dışarıdan cihaza bir istek gönderecegim ki bu istek cihaza ulastiginda cihaz kullanıcıya herhangi bir tepki göstermeden arka planda istediğim işlemi yapacak. kullanıcının haberi olmayacak bu gelen istekten yani. istekten kastım ise en basit örnegi ile kullanıcının lokasyonunu o an cekmek veya kullanıcının o an ki son görüşme kayıdını çekebilmek. servis yazıp belli aralıklar ile bu verileri cekmek yerine dışardan bir istek geldiginde çekmek istiyorum.

    +1

    Ersin Ayaz

    06 Ocak 2014

    Cevabınız için teşekkürler aklıma başka bir senaryo geldi aslında. BroadcastReceiver ile sms okusam, ve bu sms geldiginde metodu işleme soksam sanırım sms maliyeti oluşsa bile istediğime ulaşabiliyorum. fakat BroadcastReceiver  ile gelen sms'i kullanıcı ya yansıtmadan okuyup silebilirmiyim acaba. konu farklı biryere uzanıyor farkındayım ama yardımlarınız çok işime yarıyor gerçekten.
    teşekkürler

      ersinayaz

      Pzt, 06/01/2014 - 18:04
      ilgili intent-filter'a priority degerini öncelikli yapıp onRecive metodunda da abortBroadcast(); yaptığımda amacıma ulaşmış oldum. ilgi ve alakanız için teşekkürler.

      cgural

      Pzt, 06/01/2014 - 21:46
      bu yöntem her cihazda aynı sonucu veremeyebiliyor. hatta bazı cihazlardaki güvenlik yazılımları böyle şeyleri kullanıcıya açık da edebiliyor. bir kenarda bilgi olarak dursun. kolaylıklar dilerim.

    0

    Caner Güral

    06 Ocak 2014

    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.

    Bu soruya cevap vermek için üye olmanız veya giriş yapmanız gerekmektedir.