package com.example.sleep.utils;

import android.app.ActivityManager;
import android.content.Context;

import java.util.List;

/**
 * 系统工具类，用于判断应用是否在前台运行
 */
public class SystemUtils {
    /**
     * 判断应用是否在前台运行
     *
     * @param mContext    应用程序上下文
     * @param packageName 应用包名
     * @return 应用是否在前台运行
     */
    public static boolean isAPPALive(Context mContext, String packageName) {
        // 默认应用未在前台运行
        boolean isAPPRunning = false;
        // 获取Activity管理器
        ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
        // 获取正在运行的进程列表
        List<ActivityManager.RunningAppProcessInfo> appProcessInfoList = activityManager.getRunningAppProcesses();
        for (ActivityManager.RunningAppProcessInfo appInfo : appProcessInfoList) {
            if (packageName.equals(appInfo.processName)) {
                // 如果应用包名与正在运行的进程列表中的某个进程匹配，则应用在前台运行
                isAPPRunning = true;
                break;
            }
        }
        // 返回应用是否在前台运行的结果
        return isAPPRunning;
    }
}