Oi gente,
estou registrando um BroadcastReceiver no onCreate da minha Activity dessa forma:
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String message = null;
switch (getResultCode()) {
case Activity.RESULT_OK:
message = "Message sent!";
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
message = "Error.";
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
message = "Error: No service.";
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
message = "Error: Null PDU.";
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
message = "Error: Radio off.";
break;
}
Toast.makeText(DetalhesContato.this, message, Toast.LENGTH_LONG).show();
}
}, new IntentFilter("SMS_SENT_ACTION"));
E “disregistrando” no onDestroy dessa forma:
protected void onDestroy() {
if(processoEnviarSMS) {
processoEnviarSMS = false;
unregisterReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String message = null;
switch (getResultCode()) {
case Activity.RESULT_OK:
message = "Message sent!";
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
message = "Error.";
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
message = "Error: No service.";
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
message = "Error: Null PDU.";
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
message = "Error: Radio off.";
break;
}
Toast.makeText(DetalhesContato.this, message, Toast.LENGTH_LONG).show();
}
});
}
super.onDestroy();
}
Mas estou recebendo IllegalArgumentException quando eu saio dessa Activity, afirmando que o receiver não foi registrado.
Alguém saberia como resolver essa situação?
Desde já agradeço.