Taranfx Taranfx - 2 months ago 36
Android Question

Check if Activity is running from Service

How can a

Service
check if one of it's application's
Activity
is running in foreground?

Answer

Use the below method with your package name. It will return true if any of your activities is in foreground.

public boolean isForeground(String myPackage) {
    ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    List<ActivityManager.RunningTaskInfo> runningTaskInfo = manager.getRunningTasks(1); 
    ComponentName componentInfo = runningTaskInfo.get(0).topActivity;
    return componentInfo.getPackageName().equals(myPackage);
}

Update:

Add Permission:

<uses-permission android:name="android.permission.GET_TASKS" />