Android判斷某一應用是否正在運行與判斷某一Service是否正在運行

這就是一個簡單的工具類,直接代碼:

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

import java.util.List;

/**
 * 作者:lzy on 2016/10/9 11:10
 * 郵箱:[email protected]
 */

public class AppUtils {

    /**
     * 方法描述:判斷某一應用是否正在運行
     *
     * @param context     上下文
     * @param packageName 應用的包名
     * @return true 表示正在運行,false表示沒有運行
     */
    public static boolean isAppRunning(Context context, String packageName) {
        boolean isAppRunning = false;
        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningTaskInfo> list = am.getRunningTasks(100);
        if (list.size() <= 0) {
            return false;
        }
        for (ActivityManager.RunningTaskInfo info : list) {
            if (info.baseActivity.getPackageName().equals(packageName)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 方法描述:判斷某一Service是否正在運行
     *
     * @param context     上下文
     * @param serviceName Service的全路徑: 包名 + service的類名
     * @return true 表示正在運行,false 表示沒有運行
     */
    public static boolean isServiceRunning(Context context, String serviceName) {
        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningServiceInfo> runningServiceInfos = am.getRunningServices(200);
        if (runningServiceInfos.size() <= 0) {
            return false;
        }
        for (ActivityManager.RunningServiceInfo serviceInfo : runningServiceInfos) {
            if (serviceInfo.service.getClassName().equals(serviceName)) {
                return true;
            }
        }
        return false;
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章