2009-11-25 14 views
7

मेरी गतिविधि में पृष्ठभूमि थ्रेड में कुछ चीजें चल रही हैं, जो गतिविधि_1 में शुरू हो जाती हैं। पृष्ठभूमि धागे की प्रसंस्करण में कुछ समय लगता है और जब मैं AlertDialog के माध्यम से पूरा हो जाता हूं तो मैं उपयोगकर्ता को सूचित करना चाहता हूं। हालांकि, उपयोगकर्ता इस दौरान गतिविधि_2 या गतिविधि_3 में बदल गया होगा और मैं हमेशा वर्तमान गतिविधि में AlertDialog पॉप अप करना चाहता हूं।एंड्रॉइड: पृष्ठभूमि थ्रेड से अलर्टडियलॉग बढ़ाएं

कोई विचार यह कैसे समझें?

उत्तर

3

मैंने अपने पृष्ठभूमि धागे में ऐसा कुछ करने का अंत किया। यह काम करता है, लेकिन यह सुनिश्चित नहीं है कि यह एक "अच्छा" समाधान है या नहीं।

Looper.prepare(); 
mActivity.showDialogAlertDefault(); 
Looper.loop(); 
Looper.myLooper().quit(); 
+0

यह मेरे लिए भी काम करता है, हालांकि, अलर्टडिअलॉग प्रतीत होता है, ऐसा लगता है कि यह उस थ्रेड को निष्पादित करने के बारे में जानता है, जिसे अलर्टडियलॉग दिखाई देने से पहले निष्पादित किया गया था। कोई सुझाव? मेरा कोड देखना चाहते हैं? – prolink007

+0

कोड समय पर अत्यधिक देरी के साथ आक्रमण कर रहा है। –

0

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

+0

मेरा "पृष्ठभूमि धागा" वास्तव में एक अलग सेवा है। जो मैं खोज रहा हूं, वह एक वैश्विक संदेश (संवाद) है जिसे एप्लिकेशन में कहीं भी उठाया जा सकता है। क्या इसका मतलब है कि मुझे प्रत्येक गतिविधि में एक श्रोता और एक संवाद लागू करना है या मैं इसे पूरे आवेदन के लिए एक ही बिंदु पर कर सकता हूं। दूसरा सवाल यह है कि, मैं क्या सुन रहा हूं (क्या यह एक इरादा है या कुछ और है)? – znq

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