2012-06-02 13 views
5

मैं अपने आवेदन को "पूर्ण कार्रवाई का उपयोग ..." संवाद के माध्यम से फोन कॉल के लिए एक हैंडलर पंजीकृत करना चाहता हूं। मैंने पाया कि यह काम करता है अगर मैं अपने प्रकट में निम्न सिंटैक्स का उपयोग:एक रिसीवर बनाम गतिविधि में एक इरादा-फ़िल्टर घोषित करने के बीच क्या अंतर है?

<activity android:name="my.class"> 
     <intent-filter> 
      <action android:name="android.intent.action.CALL_PRIVILEGED" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <data android:scheme="tel" /> 
     </intent-filter> 
    </activity> 

लेकिन अगर मैं एक प्रसारण रिसीवर के रूप में यह रजिस्टर, मेरे एप्लिकेशन का उपयोग करके "पूर्ण कार्रवाई में दिखाई नहीं देता ... "संवाद।

<receiver android:name="my.class"> 
     <intent-filter> 
      <action android:name="android.intent.action.CALL_PRIVILEGED" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <data android:scheme="tel" /> 
     </intent-filter> 
    </receiver> 

कक्षा के प्रकार के अलावा दोनों के बीच क्या अंतर होता है जिसे एक बार इरादा फ़िल्टर से मेल खाता है?

उत्तर

6

अंतर स्पष्ट है: पहला व्यक्ति Activity लॉन्च करने का प्रयास करेगा, जबकि दूसरा BroadcastReceiver निष्पादित करेगा। उपयोग करने के लिए आप क्या हासिल करना चाहते हैं पर निर्भर करता है; BroadcastReceiver का उपयोग करें जब आप कुछ ईवेंट पकड़ना चाहते हैं लेकिन उपयोगकर्ता को कुछ भी दिखाना नहीं चाहते हैं।

+0

मैं एक गतिविधि और ब्रॉडकास्ट रिसीवर के बीच का अंतर समझता हूं, लेकिन मेरा सवाल इस बात से संबंधित था कि एंड्रॉइड ओएस उन्हें कैसे व्यवहार करता है या नहीं। उदाहरण के लिए, ऐसा लगता है कि केवल ओएस डिफ़ॉल्ट पिकर में गतिविधियां दिखाई देती हैं। क्या ऐसे अन्य गोच हैं? – bmajz

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