पहले तीन के बीच अंतर सिर्फ काम की राशि है कि आप के लिए किया गया है। और Servicefundamental Android application component है।
AsyncTask एक नया धागा पर कुछ काम करने के लिए एक सुविधा के वर्ग के रूप में और धागा जिसमें से यह बुला लिया गया है (आमतौर पर यूआई धागा) समाप्त होने पर परिणाम का उपयोग करें। यह सिर्फ एक रैपर है जो दो रननेबल का उपयोग करता है लेकिन थ्रेड बनाने और धागे के बीच मैसेजिंग को संभालने की सभी जटिलताओं को संभालता है।
Runnable इंटरफ़ेस जावा थ्रेडिंग के मूल में है। रननेबल इंटरफ़ेस किसी भी वर्ग द्वारा कार्यान्वित किया जाना चाहिए जिसका उदाहरण थ्रेड द्वारा निष्पादित किया जाना है।
TimerTask मानक जावा का हिस्सा है और कुछ भाग (रननेबल) कोड के लिए देरी या बार-बार निष्पादन के लिए उपयोग किया जा सकता है। इसका उपयोग discouraged on Android है। आप इसके बजाए एक हैंडलर का उपयोग कर सकते हैं।
एक सेवा का उपयोग आपके एंड्रॉइड एप्लिकेशन के एक स्वतंत्र और यूआई-कम हिस्से के रूप में किया जा सकता है। यह चला सकता है और इसे अपने स्वयं के धागे बना सकता है और उदाहरण के लिए AlarmManager के माध्यम से यूआई या इरादों के साथ शुरू किया जा सकता है।
ऐसा लगता है कि आप चाहते हैं कि एक सेवा है जो अपना स्वयं का धागा बनाता है और कुछ काम करता है। जब काम पूरा हो जाता है, तो कचरा कलेक्टर में आने पर स्मृति को एंड्रॉइड पर मुक्त कर दिया जाएगा, जो कुछ आप नियंत्रित नहीं करते हैं और यह एक अच्छी बात है।
अलार्ममेनगर आपको निर्दिष्ट अंतराल पर इरादों को प्रसारित करने और डिवाइस को जागने के लिए नियंत्रण की अनुमति देता है या नहीं। आपको बस अपनी सेवा में ब्रॉडकास्ट रिसीवर परिभाषित करना होगा और इसे अपने मैनिफेस्ट में घोषित करना होगा।
आपके प्रश्न का अंतिम भाग मैं वास्तव में समझ में नहीं आता, इसलिए कृपया जो कुछ करने की कोशिश कर रहा है उस पर थोड़ा और स्पष्ट करें।
स्रोत
2011-08-14 10:09:20
यह निर्भर कर सकता है कि यह क्या करने जा रहा है। मुझे लगता है कि आप नहीं चाहते कि यूआई हर 5 सेकंड में पॉप अप करे, तो आप इसे पृष्ठभूमि में चलाएं और हर 5 सेकंड में कुछ संसाधित करें? – CrackerJack9