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