2011-03-07 7 views
19

सभी मैं प्रत्येक पर मेरी सूची अद्यतन कर रहा है स्थापित & स्थापना रद्द करने के लिए कोशिश कर रहा हूँ लेकिन नहीं पैकेज पर तो बदलें मुख्य समस्या यह है कि स्थापित है & स्थापना रद्द करें उद्देश्य को शुरू किया जाता है प्रत्येक कार्रवाई को बदलें।PACKAGE_REMOVED और फिर PACKAGE_ADDED PACKAGE_REPLACED आशय कार्रवाई के साथ निकाल दिया जाता है

तो इसके लिए मैं

<receiver android:name =".IntentReceiverTest.AppReciever"> 
    <intent-filter> 
     <action android:name="android.intent.action.PACKAGE_REMOVED"/> 
     <action android:name="android.intent.action.PACKAGE_REPLACED"/> 
     <action android:name="android.intent.action.PACKAGE_ADDED"/> 
     <data android:scheme="package"/> 
    </intent-filter> 
</receiver> 

प्रत्येक बदलें पर नीचे के रूप में एक BroadcastReciever को लागू किया है मैं कार्रवाई के साथ 3 प्रसारण

  • PACKAGE_REMOVED जो AppReciever
  • आग तो बाद के साथ सबसे पहले मिल PACKAGE_ADDED जो फिर आग AppReciever
  • 012,
  • और फिर कुछ सेकंड के बाद PACKAGE_REPLACED जो फिर AppReciever आग

तो केवल

या

रोक के लिए एक रास्ता पहले से शुरू की की वजह से सेवा को पकड़ने के लिए कार्रवाई की जगह किसी भी बेहतर तरीका सुझाव है कि कृपया PACKAGE_REMOVED और PACKAGE_ADDED कार्रवाई।

+0

मैं अपने प्रश्न के बारे में कुछ कमी या जवाब बस "उद्देश्य आप नहीं चाहते फिल्टर नहीं" है कर रहा हूँ ...? – Blrfl

+2

@Blrfl मैं जरूरत 'PACKAGE_REMOVED' और' PACKAGE_ADDED' केवल जब वास्तव में संकुल ** ** स्थापित कर रहे हैं/अनइंस्टॉल किया गया लेकिन नहीं, जब वे ** बदल दिया जाता है **। मेरे सवाल का 3 लाइन पढ़ें। – 100rabh

+0

अपने इरादे-फ़िल्टर की दूसरी पंक्ति पढ़ें, फिर बीरफ्ल की टिप्पणी पढ़ें, फिर अपने इरादे-फ़िल्टर की दूसरी पंक्ति पढ़ें। मैं PACKAGE_REPLACED कार्रवाई नहीं पकड़ – pawelzieba

उत्तर

27

बस जाँच intent.getBooleanExtra(Intent.EXTRA_REPLACING, false):

if (!intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED) && 
    intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) 
    return; 
+0

'Intent.EXTRA_REPLACING' हमेशा' action.PACKAGE_REMOVED' और 'action_PACKAGE_ADDED' में जोड़ा जाता है जब ऐप अपडेट किया जाता है। सामान्य स्थापना और स्थापना रद्द करने पर यह झूठा है। – suku

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

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