Actividad ha filtrado IntentReceiver que se registró originalmente aquí. ¿Le falta una llamada para anular el registroReceiver ()?

01-16 16:52:42.211: E/ActivityThread(2529): Activity com.Civilcourage.CivilcurageSplash has leaked IntentReceiver com.google.android.gcm.GCMBroadcastReceiver@405282e0 that was originally registered here. Are you missing a call to unregisterReceiver()? 

¿Cuál es la causa del error anterior? ¿Cómo se puede evitar?

4 Solutions collect form web for “Actividad ha filtrado IntentReceiver que se registró originalmente aquí. ¿Le falta una llamada para anular el registroReceiver ()?”

Debe cancelar el registro de sus receptores en la parada de su actividad:

 @Override protected void onStop() { unregisterReceiver(yourReceiver); super.onStop(); } 

No confíe en onStop () , porque :

Tenga en cuenta que este método nunca se puede llamar en situaciones de memoria baja en las que el sistema no tiene suficiente memoria para mantener el proceso de su actividad en ejecución después de que su método onPause () se llama

Más información sobre el ciclo de vida de la actividad aquí .

Anule el registro de su receptor en onPause ():

 @Override protected void onPause() { super.onPause(); unregisterReceiver(yourReceiver); } 

Puede cancelar el registro tan pronto como reciba el receptor de difusión

 @Override public void onReceive(Context context, Intent intent) { getActivity().unregisterReceiver(this); 

Anular el registro de su receptor en onStop () es la respuesta válida. No lo llame al método onPause ().

 @Override protected void onStop() { unregisterReceiver(yourReceiverName); super.onStop(); } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.