कृपया एक एंड्रॉइड Service
समझाएं। Activity
से यह अलग कैसे है? क्या यह अग्रभूमि/पृष्ठभूमि में चल रहे एप्लिकेशन स्थिति पर निर्भर करता है?एंड्रॉइड सेवा
उत्तर
की जाँच से पढ़ें Android Developer's SDK reference for Service:
एक सेवा है, जबकि उपयोगकर्ता के साथ बातचीत नहीं एक लंबे समय तक चलने वाली कार्रवाई करने के लिए या तो एक आवेदन की इच्छा का प्रतिनिधित्व करने के लिए एक आवेदन घटक है या उपयोग करने के लिए अन्य अनुप्रयोगों के लिए कार्यक्षमता की आपूर्ति करने के लिए।
यह नोट करना बहुत महत्वपूर्ण है
कि सेवाओं, अन्य अनुप्रयोग वस्तुओं, अपने होस्टिंग प्रक्रिया का मुख्य थ्रेड में चलाने की तरह। इसका मतलब यह है कि, यदि आपकी सेवा किसी भी CPU गहन (जैसे एमपी 3 प्लेबैक) या अवरुद्ध (जैसे नेटवर्किंग) संचालन करने जा रही है, तो उसे उस काम को करने के लिए अपने स्वयं के धागे को जन्म देना चाहिए।
यह एक गतिविधि है जो सबसे अच्छा कुछ एक उपयोगकर्ता सीधे देखता है और साथ सूचना का आदान रूप में समझा जाता के विपरीत है (एक यूआई।)
एक सेवा, जैसा कि ऊपर उल्लेख किया है, लंबे समय तक चलने वाली कार्यों के लिए इस्तेमाल किया जा सकता यह तब भी जारी रहेगा जब आपके पास कोई अग्रभूमि गतिविधि न हो, लेकिन अगर वे "पृष्ठभूमि" स्थिति में छोड़े गए तो एंड्रॉइड के जीवन चक्र द्वारा अंततः उन्हें मार दिया जाएगा। यदि आपको मारने और पुनरारंभ किए बिना एक ही उदाहरण के रूप में चलने के लिए अपनी सेवा की आवश्यकता है, तो मैं आपकी सेवा की onDestroy
विधि में आपकी सेवा की onCreate
विधि और stopForeground(boolean removeNotification) में startForeground(int id, Notification notification) रखने की अनुशंसा करता हूं।
उदाहरण के लिए, मेरे पास एक ऐप है जो foreground Service
का उपयोग करता है ताकि पूरे रात एक्सेलेरोमीटर डेटा रिकॉर्ड किया जा सके जबकि एंड्रॉइड डिवाइस उपयोगकर्ता के शरीर के बगल में है। हालांकि यह सक्रिय होने के लिए आवश्यक नहीं है, मैं भी एक Activity
कि Service
जो Service
बताता है कि यह भी एक BroadcastReceiver
Activity
अंदर करने के लिए एक्स्ट्रा कलाकार के रूप में accelerometer डेटा के साथ एक Intent
प्रसारित करना चाहिए अंदर एक BroadcastReceiver
के लिए एक Intent
प्रसारित की है।
कोड: SleepActivity SleepAccelerometerService
गुड लक और आप किसी भी अधिक जानकारी की जरूरत है, तो मुझे पता है!
एक सेवा गतिविधि के समान एक संदर्भ है लेकिन इसमें कोई GUI नहीं है।
महत्वपूर्ण: एक सेवा नए धागे में नहीं चलती है!
Service के बारे में है और यह भी How to always run a service in the background?
- 1. एंड्रॉइड सेवा
- 2. एंड्रॉइड सेवा
- 3. एंड्रॉइड सेवा
- 4. मीडियाप्लेयर सेवा एंड्रॉइड
- 5. एंड्रॉइड साझा सेवा?
- 6. एंड्रॉइड पृष्ठभूमि संगीत सेवा
- 7. एंड्रॉइड सेवा startId पैरामीटर
- 8. आप एक एंड्रॉइड सेवा
- 9. एंड्रॉइड - असमर्थित सेवा: ऑडियो
- 10. एंड्रॉइड findViewById सेवा में
- 11. सेवा कॉल एंड्रॉइड
- 12. सेवा से गतिविधि एंड्रॉइड
- 13. एंड्रॉइड: एक्सेस वैरिएबल सेवा
- 14. एंड्रॉइड वेब सेवा ट्यूटोरियल
- 15. एंड्रॉइड सेवा android.os.BinderProxy त्रुटि
- 16. एंड्रॉइड स्टार्ट सेवा सिंक्रोनस?
- 17. एंड्रॉइड एप्लिकेशन लाइफसाइक्ल और सेवा
- 18. वेक लॉक एंड्रॉइड सेवा आवर्ती
- 19. एंड्रॉइड डब्ल्यूएसडीएल/एसओएपी सेवा क्लाइंट
- 20. एंड्रॉइड में पृष्ठभूमि सेवा बनाना
- 21. एंड्रॉइड में एक सेवा बनाना
- 22. एंड्रॉइड - सेवा और गतिविधि इंटरैक्शन
- 23. एंड्रॉइड और PHP वेब सेवा
- 24. स्थान प्रारंभ करना सेवा एंड्रॉइड
- 25. एंड्रॉइड - आवधिक पृष्ठभूमि सेवा - सलाह
- 26. एंड्रॉइड सेवा एकाधिक थ्रेड डिजाइन
- 27. एंड्रॉइड और एक विश्वसनीय सेवा
- 28. एक एंड्रॉइड सेवा को अनबाइंड
- 29. कॉल रिकॉर्डिंग/प्रसंस्करण सेवा! - एंड्रॉइड
- 30. एंड्रॉइड सेवा startService() और bindService()
आपका दूसरा लिंक "स्लीप एक्सेलेरोमीटर सेवा" टूटा हुआ है। – gonzobrains
क्या आपको सोने की नींद आने पर भी आपकी सेवा को चलाने के लिए कुछ प्रकार के वेक लॉक का उपयोग करने की आवश्यकता है? – gonzobrains
कृपया ध्यान दें कि प्रत्येक लंबे समय से चलने वाले और सीपीयू-गहन ऑपरेशन के लिए आप अपने सर्विस कोड को नए थ्रेड में चलाने के लिए चाहते हैं क्योंकि सेवाओं को डिफ़ॉल्ट रूप से चलाया जाता है और यूआई थ्रेड में रहते हैं। आप अपनी अधिकांश ज़रूरतों के लिए IntentService का उपयोग कर सकते हैं। हैंडलर थ्रेड और थ्रेडपूल एक्स्सेलर अधिक लचीला लेकिन अधिक जटिल विकल्प हैं। –