में नहीं हो सकता है मैं एक गतिविधि है कि एक प्रगति संवाद दिखा करते समय पृष्ठभूमि में इंटरनेट से कुछ डेटा हो जाता है। जब मुझे डेटा (या एक त्रुटि) मिलती है तो मैं उस संवाद को खारिज कर देता हूं और दूसरा दिखाता हूं।Activity.showDialog जब गतिविधि अग्रभूमि
अगर किसी कारण वेबसाइट बहुत लंबा प्रतिक्रिया (उदाहरण के लिए 15 वर्ष से अधिक सेकंड) वितरित करने के लिए ले जाता है के लिए, फ़ोन स्क्रीन बंद हो जाएगा। अब, ही स्क्रीन बंद हो, अगर मैं एक प्रतिक्रिया मिल और एक संवाद प्रदर्शित करने का प्रयास करें, कोई त्रुटि हो जाएगा (WindowManager $ BadTokenException: खिड़की जोड़ने में असमर्थ - टोकन [email protected] मान्य नहीं है, अपने है ? गतिविधि चल)
इस समस्या का कारण सरल है: जब स्क्रीन बंद हो, एक और गतिविधि अग्रभूमि (कीगार्ड या कुछ और) के लिए आया था।
प्रश्न: अब, क्या एक गतिविधि हम जानते हैं कि कि नहीं चल रहे हैं पर showDialog लागू लिए सबसे अच्छा तरीका? (गतिविधि बनाई गई थी, लेकिन यह वह नहीं है जिस पर उपयोगकर्ता बातचीत कर रहा है .. दूसरे शब्दों में, यह बंद राज्य में है)।
मेरा मानना है कि अगर मैं घर क्लिक किया और घर गतिविधि करने के लिए बदल एक समान व्यवहार होगा। (हालांकि मैं इसे अपने विशेष मामले में नहीं कर सकता क्योंकि मेरी गतिविधि अनुरोध रद्द कर देगी और सब ठीक से बंद हो जाएगा)।
मुझे नहीं लगता कि कि यह किसी भी फर्क नहीं पड़ता, लेकिन मैं एंड्रॉयड में है कि अपवाद इस reproduced 2.1
शायद कुछ कोड 'ऑन पॉज़, ऑन रेज़्यूम, ऑनस्ट्रोय, ऑनस्टॉप' विधियों में रखना चाहें। इस तरह, यदि थ्रेड पूरा होने से पहले 'ऑन पॉज़' (या जो कुछ भी हो) को कॉल किया जाता है, और इसे पूरा करने से पहले 'ऑनयूज'' नहीं कहा जाता है, तो आपको उस गतिविधि की स्थिति पता चलेगी जो थ्रेड शुरू करता है - और पता चलेगा कि क्या होगा आप एक संवाद दिखा सकते हैं – binnyb
लेकिन मैं संवाद दिखाना चाहते हैं। यदि उपयोगकर्ता द्वारा गतिविधि नहीं देखी जा रही है, जब वह मेरी गतिविधि पर वापस आ जाता है, तो मैं इसे संवाद दिखाना चाहता हूं ... –