如何确定一个Android服务在前台运行?前台、Android

2023-09-06 13:40:27 作者:本姑娘赛过穆桂英

我有,我相信已经在前台运行的服务,我该如何检查,如果我实现工作?

解决方案

 私人布尔isServiceRunning(字符串服务名){
        布尔serviceRunning = FALSE;
        ActivityManager AM =(ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
        名单< ActivityManager.RunningServiceInfo>升= am.getRunningServices(50);
        迭代器< ActivityManager.RunningServiceInfo> I = l.iterator();
        而(i.hasNext()){
            ActivityManager.RunningServiceInfo runningServiceInfo =(ActivityManager.RunningServiceInfo)我
                    。下一个();

            如果(runningServiceInfo.service.getClassName()。等于(服务名)){
                serviceRunning = TRUE;

                如果(runningServiceInfo.service.foreground)
                {
                    在前台//服务运行
                }
            }
        }
        返回serviceRunning;
    }
 

如果你想知道,如果你的服务是在前台运行只需打开另一些脂肪应用程序,然后检查服务​​是否仍在运行,或者只是检查标记 service.foreground

I have a service which I believe to have running in the foreground, How do I check if my implementation is working?

解决方案 Android L发布 界面大改ATR模式走向前台

private boolean isServiceRunning(String serviceName){
        boolean serviceRunning = false;
        ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
        List<ActivityManager.RunningServiceInfo> l = am.getRunningServices(50);
        Iterator<ActivityManager.RunningServiceInfo> i = l.iterator();
        while (i.hasNext()) {
            ActivityManager.RunningServiceInfo runningServiceInfo = (ActivityManager.RunningServiceInfo) i
                    .next();

            if(runningServiceInfo.service.getClassName().equals(serviceName)){
                serviceRunning = true;

                if(runningServiceInfo.service.foreground)
                {
                    //service run in foreground
                }
            }
        }
        return serviceRunning;
    }

If you want to know if your service is running in foreground just open some others fat applications and then check if service is still running or just check flag service.foreground.