public boolean isAppRunning() { boolean appFound = false; final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); final List<RunningTaskInfo> recentTasks = activityManager.getRunningTasks(Integer.MAX_VALUE); for (RunningTaskInfo recentTask : recentTasks) { if (recentTask.baseActivity.getPackageName().equals("your.packagename")) { appFound = true; break; } } return appFound; }
using this method, I solved my problem, if I got false, then I will close my service.
need to add permission:
<uses-permission android:name="android.permission.GET_TASKS" />
Hope it worked
source share