长亭百川云 - 文章详情

判断SERVICE是否存活引起的DeadSystemException

傲慢的上校的专栏

30

2024-07-19

/**
     * 方法描述:判断某一Service是否正在运行
     *
     * @param context     上下文
     * @param serviceName Service的全路径: 包名 + service的类名
     * @return true 表示正在运行,false 表示没有运行
     */
    public static boolean isServiceRunning(Context context, String serviceName) {
        try {
            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;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return false;
    }

代码很容易引起 android.os.DeadSystemException。

修改方案是加try catch(上面示例代码已经添加)

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2