判断APP进程
public boolean isAppRunning(String PackageName) {
ActivityManager activityManager =(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> infos = activityManager.getRunningAppProcesses();
if(infos.size() <= 0){
return false; //如果进程总数小于零 直接返回false
}
for (RunningAppProcessInfo rapi : infos) {
if (rapi.processName.equals(PackageName)){
return true;
}
}
return false;
}
if(isAppRunning("包名")){
//
}
判断服务
public static boolean isService(Context context, String className) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> serviceList = activityManager.getRunningServices(Integer.MAX_VALUE);
if (serviceList.size() <= 0) {
return false;
}
for(RunningServiceInfo info : serviceList){
if (info.service.equals(className)) {
return true;
}
}
return false;
}
获取正在运行的Activity
public boolean isForeground(String className, String className2) {
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<RunningTaskInfo> list = am.getRunningTasks(30);
for (int i = 0; i < list.size(); i++) {
String top = list.get(i).topActivity.getClassName();
Log.d(TAG, "top i= " + i + " " + top);
}
return false;
}