2010-01-15 12 views
8

मेरे पास कई गतिविधियां और एक सेवा है। MainActivity में मैं सफलतापूर्वक सेवा से कनेक्ट (एक वर्ग को लागू करने वाली का उपयोग कर ServiceConnection + bindService() + startService()) लेकिन मैं LogCat में एक त्रुटि देखते हैं जब मैं अन्य गतिविधि में एक ही विधि लागू करने का प्रयास:एकाधिक गतिविधियों के बीच एक एंड्रॉइड सेवा से कैसे जुड़े रहें?

01-15 22:29:37.438: ERROR/ActivityThread(12206): android.app.ServiceConnectionLeaked: 
    Activity com.app.liviu.simpleMusicPlayer.PlaylistActivity has leaked ServiceConnection 
    com.app.liviu.simpleMusicPlayer.PlaylistActivit[email protected] 
    that was originally bound here. 

से कनेक्ट करने के संभव है एक अन्य तरीके से एक सेवा: में मेरी CounterServiceConnection ऑब्जेक्ट स्थिर करने की तरह कुछ और इसे दूसरे में उपयोग करें?

उत्तर

15

त्रुटि संदेश काफी आत्म व्याख्यात्मक है: यदि आप एक ServiceConnection लीक कर रहे हैं, जिसके द्वारा एंड्रॉयड मतलब है कि आप bindService() बुला रहे हैं लेकिन unbindService() पर कॉल नहीं कर रहे हैं, और bindService() नामक गतिविधि को नष्ट कर दिया गया था। सुनिश्चित करें कि में unbindService() पर कॉल करें, यदि जल्द से जल्द नहीं।

something like to make static my CounterServiceConnection object in MainActivity and use it in the seconde one?

सं

+3

यह कह रहा है क्या त्रुटि है, न कि समस्या को हल करने के लिए – Will

+0

मैं एक ही गतिविधि – Blundell

+0

मैं unbindService बोल रहा हूँ में फिर से bindService, तो bindService को फोन करके इस त्रुटि संदेश मिला (इस) ऑनस्ट्रोय। बाध्य करने के लिए मैं 'बोल रहा हूँ बूलियन bindResult = bindService (नई आशय (\t \t \t \t \t Consts.MARKET_BILLING_SERVICE_ACTION), इस, // ServiceConnection। \t \t \t \t \t Context.BIND_AUTO_CREATE)'। मुझ से ऐसी कौनसी गलती हो जाएगी ? – Siddharth

0

आप जब तक आप उस सूत्र में एक looper स्थापित के रूप में एक अलग थ्रेड से बाध्य कर सकते हैं

संबंधित मुद्दे