यह जांचने का सबसे अच्छा तरीका क्या होगा कि कोई एंड्रॉइड सेवा चल रही है या नहीं? मुझे ActivityManager
एपीआई के बारे में पता है, लेकिन ऐसा लगता है कि एपीआई के उपयोग की तरह मेरे परिदृश्यों के लिए सलाह नहीं दी जाती है (source)। मैं सेवा की स्थिति को बनाए रखने के लिए वैश्विक/लगातार चर का उपयोग करने की संभावना से भी अवगत हूं।एंड्रॉइड: जांचें कि क्या सेवा चल रही है या नहीं। bindService
मैं 0
करने के लिए सेट झंडे के साथ bindService
उपयोग करने के लिए कोशिश की है, लेकिन मैं स्रोत लिंक (एकमात्र अपवाद था, मैं एक स्थानीय सेवा के साथ bindService
कोशिश कर रहा था) पर व्यक्ति के रूप में एक ही समस्याओं मिल गया।
निम्नलिखित कॉल
getApplicationContext().bindService(new Intent(getApplicationContext(),
MyService.class), mServiceConnection, 0);
हमेशा सच दिखाए, लेकिन जुड़ा हुआ नहीं होती है। क्या यह अपेक्षित व्यवहार है? ऐसा लगता है कि bindService
को झूठी वापसी करनी चाहिए यदि सेवा पहले से चल रही नहीं है (यह नहीं है, मैंने इसे चेक किया है) या यदि BIND_AUTO_CREATE
ध्वज सेट नहीं है (फिर से, यह नहीं है)।
का उपयोग कर के कि मैं करूंगा मान लीजिए किया एक संदेश मुद्रित करना चाहते हैं "सेवा चल रही है" या "सेवा नहीं चल रही है"। यही कारण है कि अगर सेवा चल रही है या नहीं तो मुझे जानकारी प्राप्त करनी है। मैं startService को कॉल करने के साथ ऐसा नहीं कर सकता। – Igor
लेकिन आपको यह संदेश क्यों प्रिंट करना है? सेवा केवल नहीं चल रही है, तो केवल 2 चीजें हैं जो आप कर सकते हैं। या तो इसे शुरू करें या नहीं। – Falmarri
क्योंकि यदि सेवा चल रही है या नहीं, तो मैं उपयोगकर्ता को सूचित करना चाहता हूं। उपयोगकर्ता को मैन्युअल रूप से सेवा शुरू और बंद करनी चाहिए (एक बटन दबाकर)।जब उपयोगकर्ता गतिविधि (बैक बटन) बंद कर देता है, तो सेवा चलनी चाहिए। और गतिविधि को पता होना चाहिए, जब उपयोगकर्ता अगली बार इसे शुरू करता है, तो सेवा पहले ही चल रही है। – Igor