2013-05-13 7 views
6

Android geliştirmeye yeni başlayan bir kişiyim ve Google Cloud Messaging'e bağlı iki şeyle ilgileniyorum.Android, uygulamanızı öldürürse ve Ayarlar'dan Kapat'ı kapatırsam GCM iletilerini alır mıyım?

  1. Android, iOS'un arka planında uzun süre çalıştığı takdirde uygulamaları kesinlikle öldürüyor mu? Uygulamam Android tarafından öldürüldükten sonra GCM bildirimleri alacak mıyım?
  2. Force Close (ayarlar menüsünden) ile uygulama Android tarafından öldürüldüğünde arasında bir fark var mı? Ve eğer Gücü Kapatırsam GCM bildirimlerini alır mıyım?
+0

@ noundla, Anlattığınız noktayı ayrıntılandırır mısınız? Neden güç kesildikten sonra msg alırız. –

+0

@Noundla, hayır, işleminiz çalışmıyorsa, GCM'yi aldığınızda sonuç İPTAL EDİLİR. Bunu logcat'inize not edin: W/GCM/DMM ﹕ yayın amacı geri arama: sonuç = CANCELED forIntent {act = com.google.android.c2dm.intent.RECEIVE pkg = xxxx (ekstralar var)} – Zennichimaro

cevap

5

1 - Evet, ancak manifestinize gcm'yi dinleyen bir yayın alıcısı yüklerseniz, yine de tetiklenir. Bu etkinlikle ne yapacağınız uygulamanıza göre değişir. Yaygın bir uygulama, mesajı işleyen bir niyet hizmetinin başlatılmasıdır. Uygulamanızın etkinlikleri ile etkileşim kurmak size kalmıştır.

2 - Android 3.1'den, kullanıcı gücü uygulamanızı kapatırsa, kullanıcı uygulamanızı tekrar başlatmaya başlayana kadar herhangi bir yayından haberdar edilmeyi durduracaktır. Daha fazla ayrıntı için "Durdurulan uygulamalardaki denetimleri başlat" seçeneğini here kontrol edin.

+1

Teşekkürler. Anlaştığım gibi bir Force Close yapacaksam GCM bildirimlerini almayacağım. Ama nedenini anlamıyorum. Burada dokümanlarda okuduğum: "Bir arka plan hizmeti veya uygulaması, durdurulmuş uygulamaları etkinleştirmesine izin verilmesi gereken yayın amaçlarına FLAG_INCLUDE_STOPPED_PACKAGES bayrağını ekleyerek bu davranışı geçersiz kılabilir." Force Close yaptığımda dahili olarak ne olduğunu açıklayabilir misiniz? Ve lütfen dokümanlardaki satırları yorumlayın. Şimdiden teşekkürler! – MainstreamDeveloper00

+0

Ne (uygulama) durduğunda, uygulama durdurulduğu gibi işaretlendiyse (aldığınız yayın ile kesiştirdiğiniz gibi), uygulama bu durumdan çıkana kadar engellenir (yani ilk başlangıç ​​/ a zorunlu bir bloktan sonra yeniden başlat). Bu amaç, başlatılmadan veya bir kuvvetin kapanmasından sonra arka planda yürütmek için istenmeyen uygulamayı engellemektir. Bu bir tür korumadır çünkü yayınları engellemek, uygulamanızı os öldürse bile arka planda kod çalıştırabilirsiniz. – fedepaol