Does BroadCast SMS recipient receive many times?

I am using sms broadcast receiver in my application. When I send the first sms, it gives out one message as an sms message. when I sent the second request, the popup message doubles. The third time he tripled and so on. I use the following code to send and receive broadcasts.

private void sendRequest() { String SENT = "SMS_SENT"; String DELIVERED = "SMS_DELIVERED"; PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0); PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED), 0); //---when the SMS has been sent--- registerReceiver(new BroadcastReceiver(){ @Override public void onReceive(Context arg0, Intent arg1) { switch (getResultCode()) { case Activity.RESULT_OK: Toast.makeText(getBaseContext(), "SMS sent", Toast.LENGTH_SHORT).show(); break; case SmsManager.RESULT_ERROR_GENERIC_FAILURE: Toast.makeText(getBaseContext(), "Invalid PhoneNumber", Toast.LENGTH_SHORT).show(); break; case SmsManager.RESULT_ERROR_NO_SERVICE: Toast.makeText(getBaseContext(), "No service", Toast.LENGTH_SHORT).show(); break; case SmsManager.RESULT_ERROR_NULL_PDU: Toast.makeText(getBaseContext(), "Null PDU", Toast.LENGTH_SHORT).show(); break; case SmsManager.RESULT_ERROR_RADIO_OFF: Toast.makeText(getBaseContext(), "Radio off", Toast.LENGTH_SHORT).show(); break; } } }, new IntentFilter(SENT)); SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(sms_phonenumber, null, sms_message, sentPI, null); 

I'm not sure if this is happening. I am sending an sms message from mainactivity.

Thanks for helping the guys ..

+4
source share
1 answer

it looks like this: every time you call sendRequest you register BroadcastReceiver one more time ........

you need to register BroadcastReceiver only once, and it must be unregistered before you live .........

perform registration and unregistered work only once on onStart and onStop, as in the link

+4
source

All Articles