तो, मैं एक अलग थ्रेड में संगीत स्ट्रीम कर रहा हूं। अगर मैं ऐप छोड़ देता हूं (onPause()
, onStop()
बुलाया जा रहा है, आदि), संगीत चल रहा है, लेकिन आखिरकार - अन्य ऐप्स खोलने और उनके बीच स्विच करने और होम स्क्रीन पर वापस जाने के बाद - मेरा ऐप मारे गए। कोई दुर्घटना नहीं, केवल WIN DEATH
और process com.myapp.android has died
लॉगकैट में। जाहिर है, संसाधनों को पुनः प्राप्त करने के लिए सिस्टम द्वारा ऐप्स को नष्ट करने के लिए यह वैध है।MediaPlayer प्रारंभ थ्रेड में प्रारंभिक थ्रेड बनाम सेवा के माध्यम से चल रहा है()
मेरा प्रश्न है: क्या मुख्य (यूआई) थ्रेड के थ्रेड ऑफ में सामान चलाना मतलब है कि अब तक सिस्टम की चिंता होने पर अब इसकी प्राथमिकता कम है? मतलब, क्या मैं मीडिया प्लेयर को Service
में चलाता हूं और यहां तक कि startForeground()
का उपयोग अग्रभूमि में सेवा चलाने के लिए भी किया जा सकता है?
किसी भी विचार या स्पष्टीकरण की सराहना की जाएगी!
संपादित
इसके अलावा, पर सेवाएं प्रलेखन का हिस्सा मुझे confuses। प्रासंगिक भाग में, यह कहा गया है:
सावधानी: एक सेवा अपने होस्टिंग प्रक्रिया- सेवा के मुख्य थ्रेड में चलता है अपने स्वयं के धागे का निर्माण नहीं करता है और एक अलग प्रक्रिया में नहीं चलता है (निर्दिष्ट न किए)। इसका मतलब यह है कि, यदि आपकी सेवा किसी भी CPU गहन कार्य या संचालन (जैसे एमपी 3 प्लेबैक या नेटवर्किंग) को अवरुद्ध करने जा रही है, तो आपको उस कार्य को करने के लिए सेवा के भीतर नया धागा बनाना चाहिए।
मैंने हमेशा मुख्य धागे पर एक सेवा में एमपी 3 प्लेबैक चलाया है और यूआई उत्तरदायी बना हुआ है। अगर मुझे उपरोक्त उद्धरण में अनुशंसित एक अलग थ्रेड में रखा जाना है, तो मैं उस स्थान पर वापस नहीं आऊंगा जहां मैंने शुरू किया था, अर्थात् मीडिया थ्रेडबैक मुख्य धागे से निकलने के साथ, जिससे प्लेबैक की संभावना बढ़ रही है अन्य ऐप्स खोले जाने पर मारे गए हैं, इत्यादि?
धन्यवाद! क्या आप मेरे संपादन को संबोधित कर सकते हैं? – LuxuryMode
मैंने अपने mediaplayer दोनों को एक सेवा के भीतर और अपने धागे में चल रहे एक के बाहर रखा है। एंड्रॉइड मेडियाप्लेयर को मार देगा चाहे वह कहां स्थित है, अगर इसे अधिक संसाधनों की आवश्यकता है। और यह एक ऐसी सेवा के भीतर भी मारने की संभावना नहीं है जिसकी अलग थ्रेड की तुलना में अग्रभूमि प्राथमिकता हो। एकमात्र ऐसा स्थान जहां ऐसा कभी नहीं मारा जाता है वह ऐसी गतिविधि में है जो वर्तमान में अग्रभूमि में है। – AndroidDev