All I am trying to do is update my list on each Install & Uninstall but not on Package Replace .So the main problem is that Install & Uninstall intents are launched on each Replace action.
For this I have implemented a BroadcastReciever as below
<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>
On each Replace I get 3 broadcasts with actions
- First with PACKAGE_REMOVED which fires AppReciever
- then after PACKAGE_ADDED which again fires AppReciever
- And then after few seconds PACKAGE_REPLACED which again fires AppReciever
So please suggest any better way to catch only Replace Action
a way to stop previously launched Services due to PACKAGE_REMOVED and PACKAGE_ADDED action.
if (!intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED) && intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) return;