studio start sendbroadcast registerreceiver register oreo intent example ejemplos android broadcastreceiver intentfilter

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 .