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