Search code examples
javaandroidandroid-intentandroid-activity

How to pass intent with extras to an already running activity


I have a BroadcastReceiver which launches a HomeActivity with some information passed with the extras.

What happens when the activity is already running and the broadcast receiver gets triggered again which tries to launch the HomeActivity with new info. Does the OnResume() or OnCreate() of the activity execute?

If not, is there any other way of passing/reloading a running activity when a BroadcastReceiver is triggered?


Solution

  • Make sure when you are launching the intent from the BroadcastReceiver you set the FLAG_ACTIVITY_SINGLE_TOP flag.

    intent.addFlags (FLAG_ACTIVITY_SINGLE_TOP);
    
    ...
    
    
    class HomeActivity extends Activity {
       ...
       @Override
       protected void onNewIntent(Intent intent) {
          Bundle extras = intent.getExtras();
       }
       ...
    }