2011-10-27 11 views
36

मैंने इस विषय के बारे में वास्तव में बहुत सी पोस्ट पढ़ी हैं, हालांकि मेरे लिए कुछ भी काम नहीं करता है (या मेरे पास प्रभाव नहीं है)।किसी सेवा से संवाद प्रदर्शित करने के लिए

मेरे पास एक एप्लिकेशन है, कि लॉग इन करने के बाद पृष्ठभूमि सेवा (सेवा वर्ग का कार्यान्वयन) शुरू होता है। यह सेवा स्वयं को सर्वर से समन्वयित करती है और यदि कोई नया ऑर्डर आता है, तो यह एक सूचना बनाता है।

अब तक, सबकुछ बढ़िया काम करता है, मेरे पास अधिसूचना और टोस्ट संदेश है। हालांकि, मैं एक संवाद करना चाहता हूं, जो उपयोगकर्ता को नए आदेश के बारे में सूचित करता है।

जैसा कि मैंने समझा, आप सेवा के भीतर से एक गतिविधि शुरू कर सकते हैं, जो संवाद प्रदर्शित करता है। यह काम करता है, लेकिन गतिविधि वर्तमान गतिविधि ढेर के शीर्ष पर शुरू होती है और संवाद प्रदर्शित करती है। मेरे पास कोई गतिविधि नहीं है जिसमें कोई दृश्य संलग्न नहीं है और यह काले रंग की पृष्ठभूमि पर, सही ढंग से संवाद प्रदर्शित करता है।

मैं जो चाहता हूं वह वर्तमान गतिविधि पर संवाद प्रदर्शित करना है, जिसके कारण वास्तविक पृष्ठभूमि (चल रही गतिविधि) को फीका और संवाद प्रदर्शित करना है।

क्या यह किसी भी तरह से संभव है?

धन्यवाद, फ़िलिप

+0

[एंड्रॉयड सेवा से सूचना संवाद] (http://stackoverflow.com/questions/3599563/alert-dialog-from-android-service) – araks

उत्तर

35

मैं अत्यधिक, अत्यधिक, अत्यधिक अनुशंसा करता हूं कि आप ऐसा न करें (यह एंड्रॉइड डिज़ाइन और यूआई दिशानिर्देशों के खिलाफ चला जाता है)। अधिसूचनाएं जो आप कर रहे हैं उसे पूरा करने का पसंदीदा तरीका हैं (जो ऐसा लगता है जैसे आप पहले से ही पूरा कर चुके हैं)।

कहा जा रहा है कि, यदि आपको ऐसा करना है, तो मैं केवल एक संवाद थीम वाली गतिविधि का उपयोग करने की अनुशंसा करता हूं। इस तरह आपको एक अलग संवाद शुरू करने की ज़रूरत नहीं है। इसे करने के लिए कृपया http://developer.android.com/guide/topics/ui/themes.html#ApplyATheme देखें।

+0

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

+1

मुझे यकीन नहीं है कि यह कैसे संभाला जाता है। आप एक और SO सवाल पूछने के लिए स्वागत से अधिक हैं, लेकिन अगर मेरे उत्तर ने आपकी समस्या हल की है, तो कृपया इसे स्वीकार करने के मेरे समाधान के बगल में स्थित चेकबॉक्स पर क्लिक करना सुनिश्चित करें। –

+0

लेकिन क्या यह तकनीकी रूप से अलर्टडिअलॉग को सेवा से प्रदर्शित करना संभव है? –

0

नहीं, आप गतिविधि है कि नहीं है "तुम्हारा" का अपहरण नहीं कर सकते हैं और यह आदेश संवाद दिखाने के लिए। अपनी खुद की गतिविधि शुरू करने का आपका दृष्टिकोण क्लासिक है।

1

आप एक संवाद नहीं दिखा सकते हैं। लेकिन आप अपना कस्टमाइज्ड व्यू बढ़ाकर अलौकिक तरीके से जा सकते हैं ताकि आप कुछ शर्तों को पूरा करते समय स्क्रीन पर एक संवाद दिखा सकें।

5

आप एक संवाद की तरह दिखने वाली गतिविधि को बनाने के तरीके से सीख सकते हैं (कोई शीर्षक पट्टी, पारदर्शी पृष्ठभूमि, "फ़्लोटिंग" प्रभाव इत्यादि) और नहीं, आप बिना किसी संवाद के प्रारंभ कर सकते हैं सक्रियता

+10

मुर्गा मत बनो, हम उतने अच्छे नहीं हैं जितना आप हैं ... – Jmorvan

98

हम केवल सेवा से संवाद दिखा सकते हैं यदि यह सिस्टम अलर्ट संवाद है। तो, संवाद करने के लिए TYPE_SYSTEM_ALERT खिड़की लेआउट पैरामीटर सेट इस प्रकार है:

dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 

लेकिन, यह SYSTEM_ALERT_WINDOW अनुमति की जरूरत है। तो, इस पैरामिशन को मैनिफेस्ट फ़ाइल में जोड़ना न भूलें।

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 
+0

धन्यवाद, यह मेरी समस्या हल हो गया। –

+0

@chakrapani यह एक आकर्षण की तरह काम किया, लेकिन कृपया इसे कैसे खारिज कर सकते हैं ??? कृपया मेरा प्रश्न देखें [http://stackoverflow.com/questions/21913249/unable-to-dismiss-alertdialog ](httpoverflow.com/questions/21913249/unable-to-dismiss-alertdialog) –

+0

आप आराध्य हैं , यह स्वीकार्य उत्तर होना चाहिए –

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

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