android - start - PACKAGE_REMOVED y luego PACKAGE_ADDED se activan junto con PACKAGE_REPLACED Intención de acción
sendbroadcast android (1)
Solo revise intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)
:
if (!intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED) &&
intent.getBooleanExtra(Intent.EXTRA_REPLACING, false))
return;
Lo que estoy tratando de hacer es actualizar mi lista en cada Instalar y desinstalar, pero no en Reemplazar paquetes. Por lo tanto, el problema principal es que los intentos de Instalar y desinstalar se inician en cada acción Reemplazar.
Así que para esto he implementado un BroadcastReciever como a continuación
<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>
En cada Reemplazo obtengo 3 transmisiones con acciones
- Primero con PACKAGE_REMOVED que dispara AppReciever
- luego, después de PACKAGE_ADDED, que nuevamente dispara AppReciever
- Y luego, después de unos segundos, PACKAGE_REPLACED que vuelve a disparar AppReciever
Así que, por favor, sugiera una manera mejor de atrapar solo la acción Reemplazar
O
una forma de detener los Servicios lanzados anteriormente debido a la acción PACKAGE_REMOVED y PACKAGE_ADDED .