Android'de Hizmet'in birden fazla örneğini alabilir miyiz? Belirli bir zamanda telefonu sessize atabilen bir servis istiyorum ve telefonu belirli bir zamanda titreşim modunda yapmak için bu servisi kullanmak istiyorum. Yani temelde servisin birden çok kez çalışmasını sağlayabiliyorsam, telefonu titreşim modunda ayarlamak için başka bir servis oluşturmaya gerek yok. Ayrıca birden fazla örnek çalıştırabilirsek, lütfen nasıl durduğunu açıklayın. Herhangi bir kod ipucu çok yardımcı olacaktır.Android'de birden çok Hizmet örneğine sahip olma
cevap
Android'de bir Hizmetin birden fazla örneğini alabilir miyiz?
Hayır Service
birden alt sınıfları vardır, ancak Service
verilen herhangi bir alt sınıf belirli bir anda tam, 0 veya 1 örneklerini sahip olacaktır.
Belirli bir saatte telefonu sessize alamayacak bir hizmet istiyorum ve bu servisi belirli bir zamanda titreşim modunda yapmak için kullanmak istiyorum.
Bunlardan herhangi biri için bir hizmet kullanmamalısınız. AlarmManager
ve BroadcastReceiver
kullanın, lütfen.
Hizmetin böyle bir amaçla kullanılabileceğini düşünmüyorum. Hizmet, bazı farklı işlevler için değil, yalnızca bir anlam kazandırmak zorundadır. Kodu basit ve açık tutmak için ek hizmet oluşturmak daha iyidir.
Sorunuz oldukça mantıklı değil. Yapmak istediğiniz şey, aynı servisin birden çok örneğini çalıştırarak ve aynı anda farklı şeyler yapmak gibi görünüyor. Ama sorunuz temel olarak hizmetlerin uzun bir zaman diliminde yapmaması gerektiği gerçeğine dayanıyor. Bunun yerine, neyin olması gerektiğine dair bir niyet almaları, belki de bir iplik ya da bir şey ortaya çıkarmaları ve daha sonra etrafta asılı durmalarıdır. Bir Hizmetin ana iş parçacığı üzerinde çalıştığını unutmayın, arka planda değil, bu nedenle orada uzun süre çalışan şeyler yapmamalısınız. Bakmak isteyebileceğiniz şey, ne olması gerektiğini kontrol eden amaçların kullanımıyla Faaliyetlerinizle koordinasyon sağlayan bir IntentService'dir.
- 1. Birden çok Heroku örneğine dağıtma
- 2. Parçada GestureOverlayView'a sahip olma
- 3. Bir npm modülünün birden fazla örneğine sahip olmak
- 4. WCF bir hizmet veya birden çok hizmet
- 5. Çerçeveye sahip olma pahasına otomatik düzeni kullanma
- 6. Bir usb anahtarında MSDN'e sahip olma
- 7. Etki alanından vücut içeriğine sahip olma jquery
- 8. Geçerli bağlamda WCF hizmet örneğine nasıl erişebilirim?
- 9. Cloud sql proxy kullanarak birden çok CloudSQL örneğine bağlanma?
- 10. Birden çok alt etki alanındaki hizmet çalışanlarını kullanma
- 11. C# Birden çok etkinliğe sahip düğme
- 12. ViewFlipper'daki farklı yüksekliklere sahip birden çok görünüm
- 13. jQuery: Birden çok sınıfa sahip filtre
- 14. Etiket Birden çok satıra sahip metin hizalama
- 15. jQuery Ertelenmiş: $ .when() birden çok nesneye sahip
- 16. Aynı ada sahip birden çok giriş
- 17. Aynı kimliğe sahip birden çok div önleme
- 18. jQuery Birden çok seçeneğe sahip bir Datepicker
- 19. Birden çok değer türüne sahip Java enum
- 20. Log4j birden çok dosya
- 21. Tuple neden bir Monad örneğine sahip değil?
- 22. Birden çok hizmet arasında CXF jaxb bağlamını yeniden kullan
- 23. Aynı arabirimi uygulayan birden çok hizmet, çalışma zamanında geçiş yapma
- 24. Windows Hizmeti: Aynı hizmet sınıfının birden çok örneği mi?
- 25. Birden Çok DB'ye Karşı Birden Çok Bileşen
- 26. Meteor.js Yayımlama ve Abone Olma?
- 27. androidde openssl nasıl kurulur
- 28. WCF IIS hizmeti tek bir hizmet tarafından uygulanan birden çok Hizmet Sözleşmesini barındırır - uri'yi
- 29. Birden çok anahtar birden çok değer
- 30. Birden çok veri modeliyle birden çok Realms
Teşekkürler, bir süre sonra hizmeti başlatmak için AlarmManager kullanıyorum. BroadcastReceiver'ı anlama ve AlarmManager'ı kullanarak nasıl kullanmam konusunda yardımcı olabilir misiniz? –
@SumitSahoo: 'PendingIntent'inizi oluşturmak için' getService() 'yi çağırmak yerine,' getBroadcast() 'adını verin. Ve iş mantığınız bir "Hizmet" içinde olmak yerine, bir "BroadcastReceiver" içinde (genellikle "" öğesi aracılığıyla bildirimde kayıtlı). –
CommonsWare