2011-04-01 15 views
7

को तत्काल करता है, शीर्षक के अनुसार, मेरे पास मेरे कस्टम एप्लिकेशन क्लास में UncaughtExceptionHandler सेट है जो मेरा एप्लिकेशन प्रारंभ होने पर डिफ़ॉल्ट के रूप में सेट हो जाता है।एंड्रॉइड UncaughtExceptionHandler जो AlertDialog ब्रेक

हालांकि, जबकि दस्तावेज में मैंने पढ़ा नहीं है कि आप एक DialogMyApplication.this या getApplicationContext() का उपयोग कर का दृष्टांत नहीं कर सकते। जब मैं यह करने के लिए प्रयास करते हैं, मैं एक

WindowManager $ BadTokenException ...

मिल रहा एक विकल्प की जरूरत है। मैंने इसके लिए क्षतिपूर्ति करने के लिए एक नई गतिविधि बनाने का विचार किया है, लेकिन यह AlertDialog होगा।

क्या कोई तरीका है कि मैं में MyApplication कक्षा के अंदर से एक वैध संदर्भ प्राप्त कर सकता हूं?

उत्तर

8

मैंने पढ़ लिया है कि आप एक संवाद MyApplication.this या getApplicationContext

सही उपयोग करते हुए दृष्टांत नहीं कर सकते। यूआई के निर्माण के लिए आवेदन संदर्भ विशेष रूप से उपयोगी नहीं है।

मैंने इस के लिए क्षतिपूर्ति करने के लिए एक नई गतिविधि बनाने का विचार किया है, लेकिन यह एक अलर्टडिअलॉग होगा।

इस मामले में AlertDialog असंभव है। शुरुआत करने वालों के लिए, केवल एक गतिविधि एक संवाद खोल सकती है, और आपकी कोई भी गतिविधियां चल रही नहीं हो सकती हैं (उदा।, पृष्ठभूमि सेवा में क्रैश) और मान्य (उदा।, आपके पास एक था, लेकिन यह क्रैश हो गया है)।

संपादित करें: फिक्स्ड पिछले पैराग्राफ अप भ्रम स्पष्ट करने के

+0

आप एक विकल्प का सुझाव कर सकते हैं? मैं उन ग्राहकों को चाहता हूं जो इस उत्पाद का परीक्षण करते हैं, यदि कोई अपवाद होता है तो प्रतिक्रिया रिपोर्ट करने में सक्षम होना चाहिए। जो मैं खोज रहा हूं वह एक वैश्विक अनोखा अपवाद हुक है जो पूछेगा कि क्या वे हमें एक रिपोर्ट भेजना चाहते हैं। –

+4

@ टॉम फोबियर: क्षमा करें, मुझे एहसास हुआ कि मैं अपने जवाब में थोड़ा अधिक व्यापक था। आप एक गतिविधि शुरू कर सकते हैं ठीक है; आप बस अपना खुद का संवाद नहीं पॉप कर सकते हैं। एक संवाद-थीम वाली गतिविधि का उपयोग करें, और आपको ठीक होना चाहिए। ध्यान रखें, हालांकि, आपके पृष्ठभूमि धागे में अपने स्वयं के चुप बेकार अपवाद हैंडलर होना चाहिए, क्योंकि आप कहीं भी के बीच में गतिविधियों को पॉप अप नहीं करना चाहते हैं। – CommonsWare

+0

बहुत अच्छा है, बस मुझे आवश्यक सभी जानकारी के बारे में बताता है। धन्यवाद। –

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