2009-06-09 25 views
23

Android servisleriyle uğraşıyorum ve bir hizmete bağlandığımda ServiceConnection.onServiceConnected()'un oldukça tahmin edilebilir olduğunu anladım. Ancak, VM öldükten sonra bile onServiceDisconnected() yöntemimin hiçbir zaman çağrılmadığı görünüyor.ServiceConnection.onServiceDisconnected() ne zaman çağrılır?

Hizmette hata ayıklama iletileri kaydettim ve tüm iş parçacıklarının kapatıldığını vb. Gösteriyorum. Hizmetlerin işlemler olarak uygulandığını biliyorum; Bilmediğim konular var mı? İşlemin çıkmasını engelliyor mu?

cevap

24

Uzaktan hizmet kilitlenmesi durumunda oluşur. Dolayısıyla, istemcinizden farklı bir işlemde çalışan bir hizmetin bazı istisnalar dışında başarısız olması durumunda, bağlantıyı kaybedersiniz ve geri bildirimi alırsınız.

+2

Sadece çöküyor mu? 'UnbindService()' olarak adlandırdığım ve hizmetin daha fazla istemci olmadığı için hizmet çıktığı zaman çağrılmasını beklerim. – sehugg

+3

belgelere göre sadece 'beklenmedik hizmet kesme' üzerinde olur, bu yüzden evet, sadece çökme üzerinde ve unbindService() – reflog

+2

üzerinde hayır Yani, aslında hizmete yeniden ispat olabilir eğer nasıl biliyor musunuz? Ya da daha iyisi, nasıl yeniden israr ediyorsun? Yeni bir ServiceConnection mı? – Snicolas

İlgili konular