Añadir un Receiver a su proyecto y obtendrá este evento sin siquiera iniciar su aplicación.
public class TestReciver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("TestReciver",intent.getAction()+"\n"
+intent.getDataString()+"\n"
+"UID: "+intent.getIntExtra(Intent.EXTRA_UID,0)+"\n"
+"DATA_REMOVED: "+intent.getBooleanExtra(Intent.EXTRA_DATA_REMOVED, false)+"\n"
+"REPLACING: "+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)
);
}
}
y en su manifiesto de agregarlo como esto (Dentro de su aplicación < > etiqueta):
<receiver android:name="TestReciver" >
<intent-filter >
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
Cuando se utiliza un receptor como esto no se llama a cualquier registro o anular el registro por lo que siempre habrá estar listo para obtener datos.
Una nota es que esto no funcionará si permite que los usuarios muevan su aplicación a la tarjeta SD. Si se envía un evento cuando la tarjeta SD está desmontada, el receptor no estará accesible y se perderá el evento.
¿Este receptor registrado si está registrado en manifiesto que reside dentro de una actividad que está actualmente en pausa, podrá acceder a las variables privadas de su actividad adjunta? – Peterdk
No importa, ahora veo que una clase Receiver no es una interfaz, sino una clase de la que debes heredar. – Peterdk
@chris, no veo esto documentado en los documentos de Android. –