2010-02-25 13 views
13

कुछ समय मैंने पाया वहाँ कई विकल्प हैं कि के लिए कुछ कार्रवाई करने के लिए:एंड्रॉयड अनुसूची कार्रवाई

  1. उपयोग AlarmManager
  2. उपयोग ScheduledExecutorService
  3. उपयोग हैंडलर की विधि postDelayed

क्या बड़ा है इन सब का अंतर? अनुसूची कार्रवाई करने का सबसे अच्छा अभ्यास क्या है?

+1

यह एक अच्छा स्पष्टीकरण दिखाता है http://stackoverflow.com/a/6558821/1016544 –

उत्तर

16
  1. AlarmManager वैश्विक "टाइमर" है, यह आदमी आपके आवेदन को जगा सकता है, भले ही यह शुरू नहीं हुआ हो। भारी आदमी
  2. ScheduledExecutorService: जावा डेवलपर्स के लिए सरल और परिचित जेएसई में उपयोग की जाने वाली कुछ निर्धारित सामग्री करने के लिए मानक जावा तरीका। इस नौकरी को निर्धारित करने वाले यूआई या धागे की तुलना में नौकरी को अलग थ्रेड में निष्पादित किया जाएगा। सेवाओं के लिए उपयुक्त है यूआई से निपटने के लिए और लंबे और भारी सामान की खरीद नहीं।
  3. Handler: जॉब शेड्यूल करने का एंड्रॉइड तरीका, यूआई थ्रेड में जॉब निष्पादित करता है (यदि हैंडलर यूआई में बनाया गया था), तो यह बहुत भारी प्रोसेसिंग नहीं हो सकता है या यह आपके यूआई को फ्रीज कर देगा।
+1

वर्कर थ्रेड में हैंडलर बनाना भी आसान है। –

6

AlarmManager आपके ऐप से स्वतंत्र है और यह गारंटी देता है कि कार्य चल जाएगा।
जीवन चक्र प्रतिबंधों के अनुसार Activity/Service के हिस्से के रूप में अन्य दो रन (उदा। किसी भी समय मारा जा सकता है)।

+1

इतना ही नहीं, जब डिवाइस लॉक हो जाता है और सीपीयू बहुत नींद डालता है तो ऐप की प्रक्रिया नहीं होने पर भी आग लगती है। – Lisandro

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