Etkinliğim ve Servisim var. Etkinlik başlatıldığında, bu Hizmet ile iletişim kurmak için Etkinlik yok olduğunda ve bindService()
bu Hizmetin canlı olmasını sağlamak için startService()
numaralı telefonu çağırır.Android Service: onBind (Intent) ve onUnbind (Intent) yalnızca bir kez çağrıldı
bindService()
doğru döndürür, mService.onBind()
adı verilir ve ServiceConnection.onServiceConnected()
da denir. Tüm işler.
Geri tuşuna basarak Etkinliğimi yok ettiğimde, unbindService()
numaralı telefonu ve mService.onUnbind()
numaralı telefonu çağırıyorum. ,
bindService()
döner doğru (i. Bu
onUnbind()
içinde
false
dönmek) ve ardından
mService.onBind()
DEĞİL denilen olduğunu! Ama
ServiceConnection.onServiceConnected()
da denir ve hepsi tekrar çalışır.
Dalvik, son kez onBind()
numaranın ne zaman döndüğünü hatırlıyor ve tekrar onBind()
numaralı telefonu aramıyor. Etkinliğimi tekrar imha ettiğimde onUnbind()
da değil da denir.
Bu Hizmet'i herhangi bir defaya kadar Etkinliğim'e bağlayabilir ve bu bağlantıyı kaldırabilirim, ancak stopService()
numaralı telefonu açıp kapatarak Hizmeti imha edene kadar bu yöntemler artık çağrılmayacaktır.
Bu davranışla ilgili herhangi bir açıklama bulamıyorum. Tersine, this figure, istemcilerin her defasında Hizmet'i bağladığında ve sonlandırdığında her zaman onBind()
ve onUnbind()
belirtilmelidir. Bu rakam this Dev Guide'un altında bulunabilir.
oh teşekkürler. Maalesef bunu özledim. Ancak, onUnbind() 'de true olarak dönebileceğimi öğrendim ve sonra onRebind() ve onUnbind() bir sonraki istemci için çağrılacak. –
Belgeler aslında yanıltıcıdır. Artık, onBind() işlevine yapılan çağrının yapılmadığını, ancak bu yalnızca birden çok istemci için geçerli olduğunu söylüyor. Dokümanlar ayrıca, "hizmetiniz başlatılır ve bağlayıcı kabul edilirse, sistem onUnbind() yönteminizi çağırdığında, bir istemcinin bir sonraki bağlandığında onRebind() öğesine bir çağrı almak isterseniz, isteğe bağlı olarak true olarak döndürebileceğinizi de söyleyebilirsiniz. servis (** onBind() **) çağrısı almak yerine. Yalnızca onBind() 'öğesine çağrı yok. Yine de belgelerin yanlış olduğu başka bir durum. – Malcolm
@Malcolm'da çarpıştığınız için üzgünüm ... Binding and unBinding şeyler ile ilgili bir sorum var.Bu Servisin içine bir ServerSocket Thread koyarsam ve Etkinlik-A'da onStart() ve onStop() öğesini buna göre ciltleme ve bağlama ile yerleştiririm. Başka bir etkinliğe geçip tekrar bağlarsam yeniden yaratılır mı? ya da iş parçacığı hala sonuncu kalır mı? – gumuruh