Passing Data from Broadcast Receiver to another Activity

  1. Instantiate a BroadcastReceiver in the activity you want to get your data to, for example:

    private BroadcastReceiver mServiceReceiver = new BroadcastReceiver(){
        @Override
        public void onReceive(Context context, Intent intent)
        {
            //Extract your data - better to use constants...
            String IncomingSms=intent.getStringExtra("incomingSms");//
            String phoneNumber=intent.getStringExtra("incomingPhoneNumber");
    
        }
    };
    
  2. Unregister your receiver on onPause():

    @Override
    protected void onPause() {
        super.onPause();
        try {
            if(mServiceReceiver != null){
            unregisterReceiver(mServiceReceiver);
            }
        } catch (Exception e) {
           e.printStackTrace();
        }
    }
    
  3. Register it on onResume():

    protected void onResume() {
        super.onResume();
        IntentFilter filter = new IntentFilter();
        filter.addAction("android.intent.action.SmsReceiver");
        registerReceiver(mServiceReceiver , filter);
    }
    
  4. Broadcast your data from the service via an Intent, for Example:

    Intent i = new Intent("android.intent.action.SmsReceiver").putExtra("incomingSms", message);
    i.putExtra("incomingPhoneNumber", phoneNumber);
    context.sendBroadcast(i);
    

and that’s it! goodLuck!

Leave a Comment