Recibir la misma intención difundió varias veces pero sólo envió una vez

Tengo una intención que se envía bajo ciertas condiciones. Los registros demuestran que sólo se envía UNA VEZ, pero el receptor la está recibiendo varias veces milisegundos aparte.

10-01 10:09:59.201: I/System.out(13543): SENDER CHECKPOINT 10-01 10:09:59.211: I/System.out(13543): RECEIVER CHECKPOINT 10-01 10:09:59.291: I/System.out(13543): RECEIVER CHECKPOINT 

He confirmado que solo hay un registro del Broadcast Receiver y solo un filtro de acción usado con el BR registrado. Sólo se utiliza en una sola actividad en la que un servicio que se ejecuta en otro hilo difunde la intención. Nuevamente, los registros corroboran la difusión ONE y recibos múltiples. Lo que es más, los extras son nulos en el recibo de eco.

¿Cómo puede ser esto? ¿Es posible que el sistema operativo se está repitiendo?

Código que envía la emisión:

 private void sendBroadcast(boolean status, String message, String action){ System.out.println("SENDER CHECKPOINT"); Intent intent = new Intent(action); Bundle bundle = new Bundle(); bundle.putBoolean("status", status); bundle.putString("message", message); intent.putExtras(bundle); sendBroadcast(intent); } 

Código que recibe la emisión:

 private class displayUpdate extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { System.out.println("RECEIVER CHECKPOINT"); }; } 

Registro:

 @Override public void onResume() { super.onResume(); try { // just in case onResume is called w/oa pause try{activity.unregisterReceiver(displayReceiver);}catch(Exception e){} filterRefreshUI = new IntentFilter(REFRESH_UI); activity.registerReceiver(displayReceiver, filterRefreshUI); } catch (Exception e) { e.printStackTrace(); } } 

Cancelación de la inscripción:

 @Override public void onPause() { super.onPause(); try{unregisterReceiver(displayReceiver);}catch(Exception e){} } 

¡REALMENTE ES ESO SIMPLE! Sin embargo, el receptor dispara TWICE!

En caso de que se esté preguntando – Registro / Anulación se manejan en el onPause / onResume para evitar fugas de memoria si la aplicación es asesinada por el sistema operativo.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.