wjc
4 天以前 580887e2c2a9f634b127fc1e9466a2531932d0ca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.hdl.photovoltaic.utils;
 
import android.app.ActivityManager;
import android.content.Context;
 
import com.hdl.photovoltaic.uni.MyForegroundService;
 
public class ServiceUtils {
    /**
     * 判断服务是否运行
     * @param context 上下文
     * @param serviceClass 服务类
     * @return true表示正在运行,false表示未运行
     */
    public static boolean isServiceRunning(Context context, Class<?> serviceClass) {
        // 先检查静态标志(如果同进程)
        if (serviceClass.equals(MyForegroundService.class)) {
            if (MyForegroundService.isServiceRunning()) {
                return true;
            }
        }
 
        // 通过ActivityManager检查
        ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
            if (serviceClass.getName().equals(service.service.getClassName())) {
                return true;
            }
        }
        return false;
    }
}