2012-02-07 8 views
5

START_STICKY का उपयोग करके, यदि मेरी सेवा टास्क मैनेजर द्वारा क्रैश/मारे गए हैं, तो यह स्वचालित रूप से पुनरारंभ होता है। मैं देखता हूं कि सेवाओं की एक सूची है जो पुनरारंभ हो जाती है लेकिन एक अलग क्रम में। मैं सेवा के पुनरारंभ को प्राथमिकता देना चाहता हूं ताकि यह कतार के सामने रखकर जल्द से जल्द शुरू हो जाए।क्रैश किए गए एंड्रॉइड सेवा के शेड्यूलिंग पुनरारंभ को प्राथमिकता दें

सेवा को फिर से शुरू करने में आमतौर पर 15 सेकंड से 45 सेकंड लगते हैं। क्या इस सेवा को प्राथमिकता से प्राथमिकता देने या शुरू करने का कोई तरीका है।

उत्तर

0

आपकी सेवा लंबे समय तक चल रही है? यदि ऐसा है, तो इससे छुटकारा पाने का प्रयास करें और इसकी आवश्यकता होने पर ही इसे शुरू करें। एंड्रॉइड सेवाएं डेमॉन के रूप में चलाने के लिए नहीं हैं, वे पृष्ठभूमि में छोटे जीवित श्रमिकों के रूप में चलाने के लिए हैं जब कोई उपयोगकर्ता इंटरैक्शन और इंटरफ़ेस की आवश्यकता नहीं होती है।

"मैं बस बस बैठा हूं" सेवाओं में से अधिकांश प्रसारण उद्देश्यों को सुन सकते हैं और इस तरह एक अच्छा नागरिक बन सकते हैं।

एक और बात: यदि आपकी सेवा पहले ही चल रही है और एक टास्क किलर सक्रिय है, तो यह आसान है: यह उपयोगकर्ता की समस्या है और आपकी गलती नहीं है। सिस्टम को कार्य हत्यारों की आवश्यकता नहीं है और आपको उनकी देखभाल नहीं करनी चाहिए। उपयोगकर्ता को पता होना चाहिए कि उनका उपयोग करना स्वस्थ नहीं है।

+0

मेरा "एक और चीज" है। मेरा मानना ​​है कि मुझे कार्य प्रबंधक को सूची में अनदेखा करने के लिए अपना ऐप जोड़ने के लिए एक संदेश जोड़ना चाहिए। – dcanh121

0

मुझे लगता है कि यह समाधान थोड़ा गंदा है, लेकिन आप START_STICKY से शुरू होने वाली एक नई सेवा का उपयोग कर सकते हैं और अन्य सभी सेवाओं को START_NOT_STICKY पर सेट कर सकते हैं।

तब आप अन्य सभी सेवाओं को शुरू करने के लिए नई सेवा का उपयोग कर सकते हैं (हालांकि इसकी आवश्यकता नहीं है)। यह वास्तव में एक आसान कार्यान्वयन है, क्योंकि आप सेवा के पूरे इरादे को पारित कर सकते हैं जो शुरू किया जाएगा।

फिर आप नई सेवा को बताने के लिए सभी सेवा के OnDestroy() पर एक प्रसारण जोड़ सकते हैं, जो पुराने सिस्टम में से एक को मार डाला गया था। आप OnDestroy() के माध्यम से पुराना प्रारंभिक इरादा भी पारित कर सकते हैं, इसलिए यह पुनरारंभ हो जाता है।

यदि आपकी नई सेवा मारे जाती है, तो यदि आप किसी भी अन्य सेवाओं की हत्या कर दी गई हैं, तो फिर से शुरू करने के बाद आप फिर से शुरू करने के बाद जांच कर सकते हैं और फिर पुनरारंभ करना प्राथमिकता दे सकते हैं।

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