2011-03-30 9 views
6

एक त्वरित प्रश्न: एंड्रॉइड दस्तावेज़ बहुत स्पष्ट रूप से कहते हैं कि Messenger आईपीसी (इंटर प्रोसेस संचार) के लिए AIDL के लिए एक विकल्प है। वे स्पष्ट रूप से कभी नहीं कहते हैं कि अगर यह विभिन्न अनुप्रयोगों में चलने वाली प्रक्रियाओं या केवल एक ऐप के भीतर फैली प्रक्रियाओं तक फैली हुई है। मुझे पूर्व में संदेह है, लेकिन जांचना चाहता था।क्रॉस-एप्लिकेशन संचार के लिए मैसेंजर (एआईडीएल के हल्के विकल्प) का उपयोग किया जा सकता है?

धन्यवाद! जनवरी

उत्तर

8

एआईडीएल केवल इंटर-ऐप आईपीसी के लिए उपयोग किया जाता है। हालांकि आंतरिक संचार के लिए एआईडीएल का उपयोग करना संभव है, लेकिन यह आपको कुछ भी नहीं खरीदता है और आपके Binder कार्यान्वयन पर सीमाएं डालता है।

इसके अलावा, अधिकांश मामलों में एक आवेदन में एक से अधिक प्रक्रिया नहीं होती है। अधिकांश ऐप्स के पास एकाधिक प्रक्रियाएं होने का कोई कारण नहीं है।

Messenger, createPendingResult(), ResultReceiver, निजी प्रसारण Intents - इन सब के लिए एक सेवा के लिए तरीके प्रक्रिया सीमाओं के पार एक ग्राहक के साथ संवाद करने के लिए कर रहे हैं।

+0

बढ़िया! मुझे लगता है कि मैसेंजर क्रॉस-ऐप संचार कर सकता है। बहुत बहुत धन्यवाद! –

0

मैसेंजर आंतरिक रूप से एआईडीएल का उपयोग करता है, इसे कई अनुप्रयोगों में उपयोग किया जा सकता है। प्रति एंड्रॉइड दस्तावेज के अनुसार एक मैसेंजर सेवा दो प्रक्रियाओं के बीच संचार के लिए उपयोग की जा सकती है लेकिन यह उसी एप्लिकेशन में प्रतिबंधित नहीं है। प्रोसेस एक ही एप्लिकेशन या अलग हो सकते हैं आवेदन।

मैसेंजर का उपयोग किया जाना चाहिए यदि हम अनुरोधों को अनुक्रमिक रूप से संसाधित करना चाहते हैं क्योंकि यह हैंडलर की कतार में संदेशों में प्रवेश करता है और उन्हें एक-एक करके संसाधित किया जाता है जबकि एआईडीएल में सभी अनुरोध एक साथ संभाले जाएंगे और यह थ्रेड बनाए रखने के लिए डेवलपर की ज़िम्मेदारी बन जाएगा सुरक्षा।

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

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