Search code examples
androidandroid-activity

Android: how do I check if activity is running?


Is there any simple way of determining whether or not a certain activity is active? I want to do certain things depending on which activity is active. eg:

if(activityrunning == activity1)
//do this
else if (activityrunning == activity2)
//do something else

Solution

  • You can use a static variable within the activity.

    class MyActivity extends Activity {
         static boolean active = false;
    
          @Override
          public void onStart() {
             super.onStart();
             active = true;
          } 
    
          @Override
          public void onStop() {
             super.onStop();
             active = false;
          }
    }
    

    The only gotcha is that if you use it in two activities that link to each other then onStop on the first is sometimes called after onStart in second. So both might be true briefly.

    Depending on what you are trying to do (update the current activity from a service?). You could just register a static listener in the service in your activity onStart method then the correct listener will be available when your service wants to update the UI.