2011-09-22 18 views
6

पहले से ही एक ही सवाल पूछा है, अभी तक बहुत भाग्य के बिना।किसी सेवा से एक व्यू शुरू करना?

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

enter image description here

सिद्धांत रूप में यह संभव है? यदि हां, तो मुझे उस दृश्य को कैसे प्रारंभ करना चाहिए?

धन्यवाद!

+1

मुझे समझ नहीं आता: सेवा के ऊपर एक दृश्य दिखाएं? सेवाएं आमतौर पर एंड्रॉइड में अदृश्य होती हैं (कोई यूआई नहीं है)। शायद आपको किसी प्रकार की अनुकूलन टोस्ट कार्यक्षमता की आवश्यकता है। अपनी पोस्ट को संपादित करने और अधिक जानकारी प्रदान करने का प्रयास करें ... – pkk

उत्तर

1

सेवाएं पृष्ठभूमि में चलती हैं और आपके पास UI नहीं है। तो आप किसी सेवा पर कुछ नहीं दिखा सकते हैं।

यदि आप किसी सेवा की जरूरत है कुछ के बारे में उपयोगकर्ता को सूचित करने के लिए है, तो Notification का उपयोग करें।

अयू Toast का उपयोग कर सकता है, लेकिन मैं इसके खिलाफ सलाह देता हूं, क्योंकि यह उपयोगकर्ताओं को भ्रमित कर सकता है क्योंकि यह किसी अन्य ऐप की गतिविधि पर पॉप-आउट कर सकता है।

+0

WindowManager में कोई दृश्य जोड़ने के बारे में क्या? क्या यह आपके पहले बयान को अस्वीकार नहीं करता है? – JacksOnF1re

2

मुझे लगता है कि आप "सेवा" शब्द का दुरुपयोग कर रहे हैं। सेवा अदृश्य है, गतिविधियां दिखाई दे रही हैं।

सेवा में कोई बटन नहीं हैं!

तो आपके पास कोई विकल्प नहीं है! आपको एक विचार में दोनों विचारों को रखना चाहिए, और मैं एक रिलेवेटिवआउट का उपयोग करूंगा और आपके chidren की दृश्यता को GONE/Visible पर सेट करूँगा।

http://developer.android.com/reference/android/widget/RelativeLayout.html

इसके अलावा एक पॉपअप का उपयोग कर और उसके अंतर्गत लेआउट क्लिक करने योग्य उपयोगकर्ता को परेशान होगा बना रही है। आप पूरी तरह से उपयोगकर्ता अनुभव बदल रहे हैं। मैं दृढ़ता से अपने पॉपअप अपने प्रारंभिक लेआउट

+1

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

1

के शीर्ष/नीचे दिखाई देती हैं क्या आप चाहते हैं के बजाय एक गतिविधि एक सेवा है और एक संवाद के बजाय देखें भी कर सुझाव देते हैं। मेरा सुझाव है कि आप गूगल द्वारा इस दस्तावेज़ पढ़ें: http://developer.android.com/guide/topics/fundamentals.html

हालांकि दोनों interactable होने के बारे में आपके प्रश्न का उत्तर है। यह संभव नहीं है। किसी भी समय 1 और केवल 1 गतिविधि गतिविधि स्टैक के शीर्ष पर है। उपयोगकर्ता केवल उस गतिविधि के साथ बातचीत कर सकता है। यदि आप एक फ्लोटिंग विंडो की तरह कुछ चाहते हैं तो इसे स्वयं बनाना होगा। हालांकि ध्यान रखें कि एंड्रॉइड डिजाइन सिद्धांतों के खिलाफ चला जाता है।

3

सेवाओं में निश्चित रूप से उपयोगकर्ता इंटरफ़ेस हो सकता है: इनपुट विधियां एक स्पष्ट उदाहरण हैं। उदाहरण के लिए http://developer.android.com/resources/samples/SoftKeyboard/index.html देखें।

+0

हां, मुझे पूरा यकीन है कि यह करने योग्य है – pypmannetjies

4

आप जो चाहते हैं वह आपके चल रहे सेवा उदाहरण से एक दृश्य जोड़ना है। इस तरह आप सभी गतिविधियों में दृश्य को जारी रख सकते हैं - और कहीं और से। इस महान उदाहरण देखें:

http://www.piwai.info/chatheads-basics/

+0

+ लिंक के लिए अपवोट और उत्तर दें! – NitZRobotKoder

5

हाँ यह संभव है, आप क्या करने की जरूरत WindowManager सेवा को कॉल और एक ही के माध्यम से अपने दृश्य जोड़ने है।

WindowManager windowManager=(WindowManager)getSystemService(WINDOW_SERVICE); 
LayoutInflater inflater=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); 
RelativeLayout layout=(RelativeLayout) inflater.inflate(R.layout.box,null); 

आप एक WindowManager.LayoutParams वस्तु जो लेआउट

windowManager.addView(layout,params); 

खैर के लिए मानकों को शामिल करना चाहिए की जरूरत है, कहते हैं दृश्य

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