मैंने आपके पास आने का फैसला किया क्योंकि आप विशेषज्ञ हैं
पहला i am not expert और i am not knowledgeable आप मुझसे अधिक विशेषज्ञ लोगों को ढूंढ सकते हैं लेकिन यह मेरी राय है hope to give you some help ।
सबसे पहले AsyncTask . का उपयोग करना भूल जाएं डाउनलोड करने के लिए क्योंकि इसका उपयोग आपकी तरह नहीं छोटी पृष्ठभूमि वाली नौकरियों के लिए किया जाना चाहिए, मुझे लगता है कि आप जिस फ़ाइल को डाउनलोड करना चाहते हैं वह बहुत बड़ी है। (मुझे ऐसा लगता है)
चेक downloadmanager यह देखने के लिए कि यह कैसे काम करता है, यह आपकी मदद कर सकता है।
https://developer.android.com/reference/android/app/DownloadManager.html
https://blog.vogella.com/2011/06/14/android-downloadmanager-example/
यदि आप service का उपयोग करना चाहते हैं unbound service का उपयोग करें क्योंकि आप नहीं चाहते कि एंड्रॉइड या उपयोगकर्ता द्वारा सेवा को नष्ट कर दिया जाए जब उपयोगकर्ता ऐप बंद कर देता है? मुझे लगता है कि आप किसी भी तरह से अपना डेटा प्राप्त करना चाहते हैं।
कुशल होने के लिए मैं इन चरणों की अनुशंसा करता हूं:
ए। ग्राहक डेटा पुनर्प्राप्त करने के लिए एक आरामदायक सेवा पढ़ें
बी। जब आप ग्राहक डेटा प्राप्त करते हैं:
-
लेख डेटा पुनर्प्राप्त करने के लिए एक आरामदायक सेवा पढ़ने के लिए कोई अन्य सेवा या थ्रेड बनाएं
-
अपनी पुरानी सेवा या थ्रेड पर Json ऑब्जेक्ट्स के प्रतिसाद को पार्स करें
अब आपके पास 2 सेवाएं या थ्रेड हैं जो एक साथ चलते हैं इसलिए उन चरणों का पालन करें जो स्पष्ट रूप से insert parse और इसलिए, प्रत्येक सेवा या थ्रेड पर।
मैं ए और डी को क्यों नहीं मिलाता? क्योंकि मुझे लगता है कि उपयोगकर्ता डाउनलोड प्रगति पट्टी के पीछे अधिक समय तक प्रतीक्षा करना पसंद नहीं करता है।
डेटाबेस में अपना डेटा डालने के लिए transaction . का उपयोग करें और मैं अनुशंसा करता हूं कि आप इसका उपयोग करें:
https://greendao-orm.com/
यह अधिक कुशल है ORM डेटाबेस के लिए दूसरों की तुलना में और आप डीबी कार्यान्वयन से मुक्त हो जाते हैं।
यदि सेवा शुरू करने वाली गतिविधि स्पष्ट रूप से रद्द कर दी गई है या किसी अन्य गतिविधि से छिपी हुई है, तो सेवा के पास उपयोगकर्ता को यह बताने का एक तरीका होना चाहिए कि प्रक्रिया समाप्त हो गई है। मैं इसे कैसे लागू कर सकता हूं?
अधिसूचना का उपयोग करें:
https://developer.android.com/training/notify-user/build-notification.html
https://www.tutorialspoint.com/android/android_notifications.htm
https://www.vogella.com/tutorials/AndroidNotifications/article.html
<ब्लॉकक्वॉट>जबकि यह सब लंबी प्रक्रिया पृष्ठभूमि में हो रही है, मुझे किसी प्रकार का संकेतक दिखाना होगा (एक प्रोग्रेसडिअलॉग) यही कारण है कि मैंने एक बाउंड सर्विस का उपयोग करने का विकल्प चुना है`
मैं एक अनबाउंड सेवा से UI को कैसे अपडेट कर सकता हूं?`
LocalBroadCastManager का उपयोग करें , या सामान्य तौर पर BroadCastReciever
सेवा से Android अपडेट गतिविधि UI
<ब्लॉकक्वॉट>J2ME में मैंने कुछ ऐसा ही किया है, और जब मैंने ऊपर बताए गए 6 चरणों की तरह कुछ रखा है, तो उन सभी को क्रमिक रूप से निष्पादित किया जाता है, अर्थात एक के बाद एक। क्या Android में भी ऐसा ही है?
यह आपके कदमों पर निर्भर करता है, यदि आप मेरे विचार का पालन करते हैं तो आप concurrently चलाते हैं और यदि आप अपना विचार चलाते हैं तो आप sequentially चलाएंगे ।
शुभकामनाएँ।