मेरा ऐप किसी अन्य (मेरे) ऐप्स द्वारा प्रदान की जाने वाली सेवा का उपयोग करता है। मैं bound service बुद्धि का उपयोग कर Messenger
को एक्सेस करने और इसके साथ संवाद करने के लिए उपयोग कर रहा हूं (और जैसा कि यह एक अलग ऐप है, यह एक दूरस्थ सेवा भी है)।bindService() झूठी रिटर्न देता है लेकिन unbindService() को कॉल करने की आवश्यकता है?
जब मैं एक उचित इरादे से bindService
कहते हैं, और कॉल रिटर्न false
(जब APK सेवा नहीं के आसपास है प्रदान करने की उम्मीद के रूप में), मैं प्रलेखन और उदाहरण कोड से मान लिया, कि मैं unbind
की जरूरत नहीं है ServiceConnection
। हालांकि, जब मैं अपने गैलेक्सी नेक्सस (जेली बीन) डिवाइस पर ऐसा कर रहा हूं, तो मुझे Activity
को समाप्त करते समय प्रसिद्ध ServiceConnectionLeaked
संदेश मिलता है।
मैं
if (!ctxt.bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE)) {
try {
ctxt.unbindService(serviceConnection);
} catch (Throwable t) {}
// Clean up
return;
}
// Store serviceConnection for future use
करके बचाया है इस कि मैं कर रहा हूँ उत्सुक: मैं बस दस्तावेज में कुछ वंचित रह गए हैं और यह इस तरह से काम करने के लिए माना जाता है? मैंने try ... catch
को यह सुनिश्चित करने के लिए जोड़ा कि यह व्यवहार अन्य उपकरणों या एंड्रॉइड संस्करणों पर वास्तव में अलग है, भले ही मेरा ऐप इससे प्रभावित न हो (नकारात्मक)।
उत्तर के लिए धन्यवाद, लेकिन यह अभी भी नमूने के अनुरूप नहीं है (ApiDemos में जैसे RemoteService भी केवल निकल पड़ता अगर 'onServiceConnected()' कहा जाता था)। हालांकि, आपकी मदद से मैं अब देख सकता हूं कि उच्च स्तर का विवरण भी ऐसी व्याख्या के लिए अनुमति देता है, मैं जवाब स्वीकार करूंगा। – Stephan