यह एक सामान्य सवाल है, जो विशिष्ट परिदृश्य से उठाया है, लेकिन मैं एक सामान्य जवाब कैसे निम्नलिखित स्थिति से निपटने के प्राप्त करना चाहते हैं:पृष्ठभूमि थ्रेड में अपवाद के कारण एंड्रॉइड ऐप को क्रैश होने से कैसे रोकें?
पृष्ठभूमि:
मैं उस ऐप्लिकेशन है जो Google Play Services
पर आधारित कुछ तृतीय पक्ष लाइब्रेरी (विज्ञापन नेटवर्क प्रदाता एसडीके - विशेष रूप से - AdMob
एसडीके) का उपयोग करना। इस पुस्तकालय की कार्यक्षमता आवेदन के लिए महत्वपूर्ण नहीं है। पुस्तकालय एक या अधिक पृष्ठभूमि कार्यकर्ता धागे बनाता है। कभी-कभी (बहुत दुर्लभ मामला) इन पृष्ठभूमि धागे में से एक में एक अनचाहे अपवाद होता है, जिससे एप्लिकेशन को दुर्घटनाग्रस्त कर दिया जाता है। मैं इस लाइब्रेरी के कारण सभी अपवादों को अनदेखा करना चाहता हूं, उनके कारणों के बावजूद: सबसे खराब स्थिति में ऐप उपयोगकर्ता को कोई विज्ञापन नहीं दिखाई देगा - यह ऐप क्रैश से कहीं बेहतर है।
चूंकि पुस्तकालय स्वयं पृष्ठभूमि धागे बनाता है - मैं उन्हें कोशिश/पकड़ से लपेट नहीं सकता।
प्रश्न
वहाँ सभी गैर संभाला पृष्ठभूमि (गैर मुख्य) धागा अपवाद को पकड़ने के लिए कोई तरीका है और सिर्फ इस तरह के मामले में धागा को मारने के लिए, और एप्लिकेशन दुर्घटना को रोकने के लिए?
संबंधित प्रश्नों
मैं कई सवाल का एक बहुत देखा था, लेकिन उनमें से कुछ बहुत अधिक सटीक हैं (और मेरे मामले को कवर नहीं) है जो डेवलपर धागा निर्माण पर एक नियंत्रण है और है, दूसरों को स्थिति को देखें कोशिश/पकड़ के साथ पूरे धागे को लपेटने में सक्षम। अगर मुझे अभी भी प्रासंगिक प्रश्न याद आ गया है, तो इस मामले को कवर करने के लिए, मैं
आप कार्यकर्ता थ्रेड के लिए एक प्रबंधक को इंस्टॉल करने की कोशिश की और नहीं करने की कोशिश की प्रक्रिया को मारने कक्षा बनाएं? मुझे नहीं पता कि यह संभव है क्योंकि आपके पास क्रैश होने वाले कार्यकर्ता थ्रेड तक पहुंच नहीं हो सकती है। मुझे पता है कि पूरी प्रक्रिया के लिए एक हैंडलर स्थापित करने और ऐप क्रैश होने से पहले एक बग रिपोर्ट संचारित करने के लिए झुकाव प्रबंधन करता है। शायद यह इस मार्ग के माध्यम से करने योग्य है। –
@over_optimistic धन्यवाद! मैंने Thread.setDefaultUncaughtExceptionHandler का उपयोग करने का प्रयास किया और यह एक आकर्षण की तरह काम करता है :)! कृपया इसे उत्तर के रूप में लिखें ताकि मैं इसे स्वीकार कर सकूं –
http://stackoverflow.com/questions/2764394/ideal-way-to-set-global-uncaught-exception-handler-in-android/ – fadden