How can a Service
check if one of it's application's Activity
is running in foreground?
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);
}
Add Permission:
<uses-permission android:name="android.permission.GET_TASKS" />