क्या ओएस द्वारा सेवा (स्टार्टफॉरग्राउंड) को मारने से रोकना संभव है? मैं इसे ऑडियो चलाने के लिए उपयोग करता हूं लेकिन जब मैं एक और ऐप का उपयोग करता हूं तो इसे मार दिया जाता है जिसके लिए थोड़ी देर के लिए अधिक संसाधन (गुस्सा पक्षी जाते हैं) की आवश्यकता होती है। लॉग में मैं गतिविधि प्रबंधक द्वारा ऐप प्रक्रिया को मार रहा हूं। मैंने कुछ अन्य ऑडियो ऐप्स के साथ भी दोहराया। केवल ऐप जो मारे नहीं है Play Music ऐप है। इसे सैमसंग एस 3 एंड्रॉइड 4.3 पर दोहराया गया था।संगीत सेवा शुरू होने पर भी मारे गए फोरग्राउंड
उत्तर
क्या सेवा (startForground) को ओएस द्वारा मारने से रोकना संभव है?
नहीं। यह एंड्रॉइड है जो निर्णय लेता है कि कौन सी प्रक्रिया को रोकना है। एकमात्र तरीका यह है कि इसे उपभोग करने वाली स्मृति की मात्रा को कम करके "रोकने के लिए कम आकर्षक" बनाना है।
स्मृति सहेजें। सेवा को अपनी छोटी प्रक्रिया में रखें। ताकि एंड्रॉइड ओएस स्मृति को पुनः प्राप्त करने के लिए मुख्य प्रक्रिया को मार सके और आपकी सेवा चलती रहती है। सेवा शुरू करने के लिए उपयोग किए गए इरादे से सेटिंग और वरीयताओं में गुजरकर एक छोटा सा सेवा कोड बनाए रखें।
नोट: छोटे सेवा एक अग्रभूमि सेवा होना चाहिए, जिसका अर्थ यह स्थिति पट्टी में एक आइकन दिखाने के लिए है। अलग प्रक्रिया सेवा को प्रारंभ करने के लिए इस्तेमाल के इरादे से सेटिंग में
<service
android:name="com.gosylvester.bestrides.ServiceLocationRecorder"
android:process=":bestRidesService" >
</service>
</application>
पारित करने के लिए
प्रकट। सेटिंग बदलने के लिए बस सेवा को पुनरारंभ करें।
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
boolean isTrackerMarker = SettingMarker.TRACKER_MARKER_DEFAULT;
if (intent != null) {
// intent is processing = b
isMiles = intent.getBooleanExtra(
SettingApplication.APPLICATION_MILE,
SettingApplication.APPLICATION_MILE_DEFAULT);
isRecordAccuracy = intent.getBooleanExtra(
SettingRecord.RECORD_ACCURACY,
SettingRecord.RECORD_ACCURACY_DEFAULT);
locationInterval = intent.getLongExtra(SettingRecord.RECORD_MIlLIS,
SettingRecord.RECORD_PRESET_MEDIUM_MILLIS);
startMillis = intent.getLongExtra(BUNDLE_START_MILLIS, 0);
distance = intent.getDoubleExtra(
ServiceLocationRecorder.BUNDLE_TRACKED_DISTANCE, 0);
recordDistance = (float) intent.getIntExtra(
SettingRecord.RECORD_DISTANCE,
SettingRecord.RECORD_PRESET_MEDIUM_DISTANCE);
boolean newIsRecording = intent.getBooleanExtra(
SettingRecord.RECORDING, isRecording);
isTrackerMarker = intent.getBooleanExtra(
SettingMarker.TRACKER_MARKER,
SettingMarker.TRACKER_MARKER_DEFAULT);
startRecording(newIsRecording);
}
धन्यवाद। मैं इसे करने की कोशिश की। मैंने सेवा को विभिन्न प्रक्रियाओं में रखा लेकिन मुख्य प्रक्रिया के बाद मुझे एप्लिकेशन मैनेजर द्वारा भी मार दिया गया। मैंने android.os.Process.setThreadPriority (android.os.Process भी सेट किया है।THREAD_PRIORITY_AUDIO); लेकिन इससे मदद नहीं मिली – vandzi
@vandzi माफ करना खोज रहा है मैं मदद करने में सक्षम नहीं था। – danny117
मैंने उत्तर में थोड़ा और विवरण जोड़ा। छोटी सेवा एक अग्रभूमि सेवा होना चाहिए। इससे मारे जाने की संभावना कम हो जाती है। एंड्रॉइड के लिए कोई बेहतर समाधान नहीं है। –
क्या आपने फोकस का अनुरोध करने और नियंत्रण को नियंत्रित करने और खोने का प्रयास करने का प्रयास किया था? मुझे लगता है कि यह ऐप प्रबंधन हमारे नियंत्रण से बहुत दूर है, लेकिन कम से कम आप ऐसा कुछ कर सकते हैं जब ऐसा होता है।
अपने अनुप्रयोग चक्र के कुछ बिंदु पर, कुछ इस तरह का प्रयास करें:
audioManager.requestAudioFocus(new OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
switch (focusChange) {
case AudioManager.AUDIOFOCUS_GAIN:
// you have the focus, you can start or restarting playing
break;
case AudioManager.AUDIOFOCUS_LOSS:
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
// you lost the focus, you should pause or stop playing
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
// you lost the focus, but your app can continue playing in "duck" mode
break;
default:
}
}
}, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
उत्तर के लिए धन्यवाद। मैं ऑडियोफोकस पकड़ता हूं – vandzi
Foreground service being killed by Android रॉबिन डेविस द्वारा की जवाब पर एक नजर डालें, वहाँ जानकारी का एक बहुत कुछ है:
बस संक्षेप में, यहां बताया गया है कि चीजों को कैसे काम करना चाहिए। चलने वाली सेवाओं को नियमित रूप से स्कैन किया जाएगा और हर 30 मिनट या उससे भी समाप्त कर दिया जाएगा। सेवाएं जो इस से अधिक समय तक जीवित रहना चाहती हैं उन्हें सेवा कॉल करना होगा। प्रारंभिक भूमि, जो अधिसूचना बार पर अधिसूचना रखती है, ताकि उपयोगकर्ता जान सकें कि आपकी सेवा स्थायी रूप से चल रही है और संभावित रूप से बैटरी जीवन को चूस रही है। केवल 3 सेवा प्रक्रियाएं किसी भी समय किसी भी समय अग्रभूमि सेवाओं के रूप में नामांकित कर सकती हैं। यदि तीन से अधिक अग्रभूमि सेवाएं हैं, तो एंड्रॉइड स्कावेन्गिंग और समाप्ति के लिए उम्मीदवार के रूप में सबसे पुरानी सेवा को नामांकित करेगा।
तो शायद 3 से अधिक अग्रभूमि सेवाएं हैं? अग्रभूमि सेवाओं को प्राथमिकता देते समय वह मंच में संभावित बग के बारे में भी समझाता है।
- 1. मारे गए सेवा पर DeadObjectException से कैसे निपटें?
- 2. मारे गए एंड्रॉइड सेवा और स्थैतिक चर
- 3. डोज मोड और फोरग्राउंड सेवा
- 4. ऐप बिलिंग सेवा में कई बार मारे गए
- 5. एंड्रॉइड पृष्ठभूमि संगीत सेवा
- 6. आवेदन संदर्भ मारे गए लेकिन गतिविधि
- 7. समारोह मारे गए। त्रुटि: कोटा
- 8. एंड्रॉइड: फोरग्राउंड सर्विस बनाम wakeLock
- 9. ddd शुरू होने पर
- 10. एंड्रॉइड चालू होने पर पृष्ठभूमि सेवा शुरू करना
- 11. एंड्रॉइड डिवाइस चालू होने पर सेवा कैसे शुरू करें?
- 12. विंडोज सेवा शुरू होने पर कोई कार्य कैसे चलाया जाए?
- 13. 'मारे गए' का अर्थ क्या है?
- 14. एंड्रॉइड फोरग्राउंड सर्विस अधिसूचना
- 15. एस 3 सीएमडी सिंक रिटर्न "मारे गए"
- 16. परीक्षण शुरू होने पर परीक्षण
- 17. ग्रहण शुरू होने पर ग्रहण
- 18. "बैटरी सेवर" फीचर मेरी संगीत सेवा को मार रहा है
- 19. मैं अपने एंड्रॉइड ऐप/सेवा को टास्क मैनेजर से "मारे" होने से कैसे रोक सकता हूं?
- 20. अधिसूचना से गतिविधि शुरू होने पर जांचें
- 21. बाध्य सेवा बनाम एंड्रॉइड पर सेवा शुरू हुई और
- 22. सेवा शुरू होने पर ओएसजीआई सेवा को अक्षम करने का सही तरीका क्या है?
- 23. फोरग्राउंड (शीर्ष) गतिविधि (एप्लिकेशन) में परिवर्तन होने पर अधिसूचित कैसे किया जाए
- 24. आईपॉड संगीत चालू होने पर ध्वनि बजाना (आईपैड)
- 25. फोरग्राउंड बनाम सक्रिय विंडो
- 26. अंक प्रणाली द्वारा मारे गए है या अब आप एंड्रॉयड
- 27. संपादन शुरू होने पर UITextField पृष्ठभूमि बदलें
- 28. गतिविधि शुरू होने पर स्नैकबार कैसे दिखाएं?
- 29. टैबइटम फोरग्राउंड रंग सेट करना भी टैबकंट्रोल अग्रभूमि रंग
- 30. आईआईएस 7 स्वचालित रूप से शुरू होने पर ऑटो-स्टार्ट एप्लिकेशन/global.asax/wcf सेवा
यह उच्च प्राथमिकता ऐप द्वारा ऑडियो स्ट्रीम को लिया जा सकता है। – danny117