2012-10-26 14 views
6

का उपयोग कर अलग-अलग थ्रेड में मीडियाप्लेयर हाय मुझे पृष्ठभूमि में चलाने के लिए मीडियाप्लेयर इंस्टेंस की आवश्यकता है इसलिए मैंने सेवा का उपयोग करना शुरू कर दिया।सेवा या इराद सेवा

सबकुछ ठीक काम करता है लेकिन मुझे थोड़ी देर के बाद एएनआर (एप्लिकेशन प्रतिक्रिया नहीं दे रहा है), भले ही यूआई पूरी तरह से काम करता हो। काफी उचित, मुझे पता है कि सेवाएं अभी भी मुख्य धागे पर चल रही हैं ताकि एएनआर समझ में आता है।

इसलिए मैंने IntentService का उपयोग करने की कोशिश की, जो अपने धागे को जन्म देनी चाहिए लेकिन मुझे सिरदर्द के अलावा कुछ भी नहीं मिला। जब कर्मचारी श्रमिक होते हैं तो इरादा सेवा ठीक लगती है लेकिन यह मामला यहां नहीं है क्योंकि हर बार जब मुझे ट्रैक बदलने की ज़रूरत होती है तो मुझे मुख्य ऐप से startService (मंशा) विधि को कॉल करने की आवश्यकता होती है और मैं कई मीडियाप्लेयर उदाहरणों के साथ समाप्त नहीं करना चाहता हूं एक दूसरे के शीर्ष पर खेलें ..

मैंने एक सेवा के अंदर थ्रेड का उपयोग करने का सुझाव देने का एक संकेत भी देखा। मैं मीडिया प्लेयर के साथ ऐसा कैसे करूं? क्या घोषणा उस धागे में हो या सिर्फ "तैयार/शुरू, आदि" हो? मैंने जो देखा वह काम नहीं करता है लेकिन मैं इसे गलत कर सकता हूं

किसी भी संकेत की बहुत सराहना की जाती है, संभवतः एक बहुत ही सरल उदाहरण के साथ। http://developer.android.com/guide/components/services.html

यह मेरे लिए वास्तव में मददगार था:

चियर्स

+0

हे, मैं यह जानना चाहता हूं कि आपने यह तय करने के लिए क्या किया है कि मेरे पास वही सटीक उपयोग केस है और मुझे यकीन नहीं है कि इरादा सेवा या केवल सेवा के लिए कौन सी कक्षा का उपयोग करना है। – commonSenseCode

उत्तर

4

मैं दृढ़ता से आप यहाँ प्रशिक्षण दस्तावेज़ पढ़ें सलाह देते हैं। और फिर जो धाराओं ऑडियो खुला स्रोत है एनपीआर एप्लिकेशन है, तो बाहर अपनी सेवा यहाँ की जाँच करें: http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/PlaybackService.java

उन दोनों को पढ़ना, मैं एक सेवा का उपयोग और धागे खुद से निपटने की सलाह देते हैं। मैंने अभी तक IntentService के साथ काम नहीं किया है, लेकिन आपके अनुभव से ऐसा लगता है कि यह संगीत स्ट्रीमिंग से निपटने के लिए गलत वर्ग है। उम्मीद है की वो मदद करदे!

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