2012-03-26 9 views
8

क्या हमारे पास Android में किसी सेवा का एकाधिक उदाहरण हो सकता है? मुझे एक ऐसी सेवा चाहिए जो एक विशिष्ट समय पर फोन चुप कर सके और मैं उस सेवा का उपयोग फिर से विशिष्ट समय में कंपन को कंपन मोड में करने के लिए करना चाहता हूं। तो मूल रूप से यदि मैं सेवा को कई बार चला सकता हूं तो कंपन मोड में फोन सेट करने के लिए कोई और सेवा बनाने की आवश्यकता नहीं है। इसके अलावा यदि हम एकाधिक उदाहरण चला सकते हैं तो कृपया इसे रोकने के तरीके को समझाएं। कोई भी कोड संकेत बहुत मदद करेगा।Android में सेवा का एकाधिक उदाहरण कैसे प्राप्त करें

उत्तर

25

क्या हमारे पास एंड्रॉइड में एक सेवा का एकाधिक उदाहरण हो सकता है?

नहीं, आप Service के कई उपवर्गों हो सकता है, लेकिन Service के किसी भी उपवर्ग किसी भी क्षण में ठीक 0 या 1 उदाहरणों होगा।

मुझे एक ऐसी सेवा चाहिए जो एक विशिष्ट समय पर फोन चुप कर सके और मैं उस सेवा का उपयोग विशिष्ट समय में कंपन मोड में करने के लिए करना चाहता हूं।

आपको इनमें से किसी के लिए सेवा का उपयोग नहीं करना चाहिए। कृपया AlarmManager और BroadcastReceiver का उपयोग करें।

+0

धन्यवाद, मैं कुछ समय अंतराल पर सेवा शुरू करने के लिए अलार्ममेनगर का उपयोग कर रहा हूं। क्या आप कृपया ब्रॉडकास्ट रिसीवर को समझने में मदद कर सकते हैं और अलार्ममेनगर का उपयोग करके इसका उपयोग कैसे कर सकते हैं? –

+0

@ सुमितसाहू: अपना 'लंबित इंटेंट' बनाने के लिए 'getService()' को कॉल करने के बजाय, आप 'getBroadcast() 'पर कॉल करते हैं। और, आपके व्यवसाय तर्क की बजाय 'सेवा' में होने के बजाय, यह 'ब्रॉडकास्ट रिसीवर' में है (आमतौर पर ' 'तत्व के माध्यम से मैनिफेस्ट में पंजीकृत)। – CommonsWare

2

मुझे नहीं लगता कि इस तरह के उद्देश्य के लिए सेवा का उपयोग किया जा सकता है। सेवा को कुछ कार्यक्षमता प्रदान करना है, लेकिन केवल एक अर्थ है, कई अलग-अलग उद्देश्यों के लिए नहीं। कोड को सरल और स्पष्ट रखने के लिए इसके लिए अतिरिक्त सेवा बनाना बेहतर है।

2

आपका प्रश्न काफी समझ में नहीं आता है। ऐसा लगता है कि आप जो करना चाहते हैं उसके पास एक ही सेवा के कई उदाहरण चल रहे हैं और एक साथ कई अलग-अलग चीजें कर रहे हैं। लेकिन आपका सवाल मूल रूप से इस तथ्य पर निर्भर करता है कि सेवाओं को लंबे समय तक काम नहीं करना चाहिए। इसके बजाए, क्या होना चाहिए कि वे एक इरादा प्राप्त करते हैं, शायद एक थ्रेड या कुछ पैदा करते हैं, और फिर चारों ओर लटकना बंद कर देते हैं। याद रखें कि एक सेवा अभी भी मुख्य धागे पर चलती है, यह पृष्ठभूमि नहीं है, इसलिए आपको वैसे भी लंबे समय तक चलने वाली चीजें नहीं करनी चाहिए। आप जो देखना चाहते हैं वह एक इंटेंट सेवा है, जो आपके कार्यों के साथ समन्वय करता है जो इरादे के उपयोग के माध्यम से होता है जो नियंत्रित होना चाहिए कि क्या हो रहा है।

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