Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Oreo之后ActivityManager.getRunningServices(int)的替代项_Android - Fatal编程技术网

Android Oreo之后ActivityManager.getRunningServices(int)的替代项

Android Oreo之后ActivityManager.getRunningServices(int)的替代项,android,Android,我感到震惊的是,它被弃用了,它将在Oreo(API 26)上返回调用方自己的服务。 是否有其他方法可以获取Oreo上的服务列表?的确,“getRunningServices()”已被弃用,没有其他方法。此函数最初是为内部应用程序测试而创建的。自从这个函数被创建以来,谷歌发现这可能会被有着黑暗意图的程序员所利用。基本上,让其他人知道您当前正在运行哪些服务不是一个好主意。例如,如果您正在运行反恶意软件服务,可以创建一个程序来注意到这一点,然后启动一个新的服务来阻止它,或者其他类似的用法 如果您使用此

我感到震惊的是,它被弃用了,它将在Oreo(API 26)上返回调用方自己的服务。
是否有其他方法可以获取Oreo上的服务列表?

的确,“getRunningServices()”已被弃用,没有其他方法。此函数最初是为内部应用程序测试而创建的。自从这个函数被创建以来,谷歌发现这可能会被有着黑暗意图的程序员所利用。基本上,让其他人知道您当前正在运行哪些服务不是一个好主意。例如,如果您正在运行反恶意软件服务,可以创建一个程序来注意到这一点,然后启动一个新的服务来阻止它,或者其他类似的用法

如果您使用此函数跟踪应用程序正在运行的服务,您可以像我一样删除此函数的所有用法。我只是简单地创建了一个单例类,它有一个布尔变量,用于我启动或停止每个服务的时间。当服务启动时,将单例中的布尔值设置为true,当服务停止时,将单例的布尔值设置为false。在其他类中,您可以简单地调用singleton和变量名来测试服务是否正在运行

例如:

// Singleton class
public class SingletonServiceManager {

    public static boolean isMyServiceRunning = false;

}

// Some other class
if(SingletonServiceManager.isMyServiceRunning == true){
    // do something (btw, you don't need the == true portion)
}

您没有解释为什么需要使用这个函数,所以我希望这在某种程度上有所帮助。祝你好运

不,没有其他选择,他们警告你这只是为了调试,你需要它做什么?@pskink我需要它来计算其他应用程序中的工作人员。要计算工作人员?什么工人?简单的答案是否定的,但是如果你把你的问题扩展到你用它做什么,我们可能会想出一个解决方案来帮助你。我在黑暗中拍摄了一张照片,假设您使用该功能跟踪应用程序的服务,并发布了一个答案;这将只跟踪单个应用程序中的服务。不确定这是如何被标记为答案的,但它是不正确的。很好的解决方案。谢谢服务可以在前台/后台运行,getservices返回具有属性前台的服务(如果服务请求作为前台进程运行,则设置为true)