如何判断Activity,Service,App是否在运行?

来源:互联网 发布:卡片手机淘宝 编辑:程序博客网 时间:2024/04/28 18:34

判断Activity是否在运行(可见):

public static boolean isActivityRunning(Context mContext,String activityClassName){ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);List<RunningTaskInfo> info = activityManager.getRunningTasks(1);if(info != null && info.size() > 0){ComponentName component = info.get(0).topActivity;if(activityClassName.equals(component.getClassName())){    return true;        }        }return false;}

判断Service是否在运行?

public static boolean isServiceRunning(Context mContext,String className) {        boolean isRunning = false;        ActivityManager activityManager = (ActivityManager)        mContext.getSystemService(Context.ACTIVITY_SERVICE);         List<ActivityManager.RunningServiceInfo> serviceList = activityManager.getRunningServices(30);        if (!(serviceList.size()>0)) {            return false;        }        for (int i=0; i<serviceList.size(); i++) {            if (serviceList.get(i).service.getClassName().equals(className) == true) {                isRunning = true;                break;            }        }        return isRunning;}


判断app是否打开运行状态?

第一种方法:

public static boolean isAppInForeground(Context context) {ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();for (RunningAppProcessInfo appProcess : appProcesses) {if (appProcess.processName.equals(context.getPackageName())) {return appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND;}}return false;}

第二种方法:
// need permission: <uses-permission android:name="android.permission.GET_TASKS" />  public static boolean isAppInForeground2(Context context) {ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);List<RunningTaskInfo> tasks = am.getRunningTasks(1);if (!tasks.isEmpty()) {ComponentName topActivity = tasks.get(0).topActivity;if (!topActivity.getPackageName().equals(context.getPackageName())) {return true;}}return false;}





2 0