Search code examples
androidandroid-activityandroid-service

Check if Activity is running from Service


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


Solution

  • 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" />