2012-02-09 13 views
5

Faaliyetlerimizden birinde bir çok şeyle ilgilenen bir Servisimiz var. Android için oldukça yeni ve bu hizmete bağlanmak için mükemmel anın ne olduğunu merak ediyoruz. Sadece aktiviteyle mümkün olan etkileşimlerin yarısı için hizmete ihtiyacımız var.) (OnCreate Hizmete havai uygulama akıllıca Android Services: İsteğe bağlı olarak bağlanın Bind on #onCreate()

  • bağlama adil bir miktar eklersiniz biz gerçekten gerek Hizmet'e

    • bağlama: Bu yüzden iki olasılıktan biri için razı olmak zorunda hizmetin çalışıp çalışmadığını denetleme ek yükü olmadan, isteğe bağlı olarak önbelleğe alma istekleri, belki önbellekleme istekleri yapılmış olabilir.

    Burada "android yolu" ne olurdu? Çalışan bir servis çok fazla mı, yoksa gerçekten gerektiğinde mi başlatılmalı? Hizmetin kendisi gerçekten hafif.

  • +1

    Kişisel olarak onCreate'da buna bağlanırdım. Bağlama/her zaman açılma gereksizdir ve Hizmetler'in uygulamalarına bakarsanız, nasıl yapıldığına bakmazsınız. Bu benim hizmet tecrübem, ama ben Hizmetleri ile ilgili özellikleri konusunda uzman değilim. Etrafınıza bakın ve diğer halkları ve Googles uygulamalarını izleyin. – DecodeGnome

    cevap

    1

    Şahsen bindService() öğesini onCreate() yönteminde çağırmayı tercih ediyorum ve bunu bitirdikten sonra onDestroy() içindeki unbindService() yöntemini kullanın. Bunun nedeni bindService() aslında bir asenkron çağrıdır. API'da iyi belgelenmemiş. BindService() yöntemini çağırdığınızda, ServiceConnection.onServiceConnected() geri çağırma yönteminin içine girdiğiniz bağlayıcı nesnesinin başvurusu hemen başlatılamaz, bindService() yöntemini çağırdıktan sonra ve bağlayıcı nesne örneğinin anında ve kullanıma hazır hale getirilmesinden önce bir gecikme olur. . Bu nedenle, genellikle çok ağır operasyonları tercih etmediğimiz ve bu aşamada ciltleme nesnesini kullanmaya ihtiyaç duyduğumuzdan, buna en uygun yer onCreate() olur.