How to detect if any of my activity is front-most and visible to user?

I don’t know that there’s a method to get the currently displayed activity, but you could do something combining the Activity Lifecycle and a flag.

For the flag, if you’ve extended the Application class, that’s probably a decent place to store it. For extending the application class, the top answer to this question has info. (d).

So probably keep track of the current active activity (or a flag that the activity is visible) in onResume/onPause or onStart/onStop depending on exactly what behavior you want.

Since you have multiple activities, you’ll need a centroid place for storing the flag, which is why the Application makes sense. You can get the custom Application object by casting the application context (e.g. ((MyApplication)getApplicationContext()).isMyActivityActive).

You could extend Activity as well to help keep this code clean and contained.


If you’re using a service you could bind to the service in every activity in the onStart/onStop (or onResume/onPause). If bound, you’re visible.

Leave a Comment