对于Listen类型,方法getSystemService(String)是未定义的

nov*_*rmr 25 android

我正在尝试检查com.android.music是否正在运行,我在这一行上收到以下错误 this.getSystemService(Context.ACTIVITY_SERVICE);

错误:

对于Listen类型,方法getSystemService(String)是未定义的

码:

public boolean isMusicRunning() {        
    ActivityManager activityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
    List<RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
    for (int i = 0; i < procInfos.size(); i++) {
        if (procInfos.get(i).processName.equals("com.android.music")) {
            Toast.makeText(null, "music is running",
                    Toast.LENGTH_LONG).show();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果你能让我知道我在这里做错了什么就会很棒!

Ebo*_*ike 58

getSystemService是类的方法Context,因此您需要在上下文中运行它.

您复制它的原始代码可能意味着从一个Activity衍生的类运行.如果Context参数不在Activity中,则需要将参数传递给方法.


小智 22

你应该这样使用:

public boolean isMusicRunning(Context context) {
    ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List<RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
    for (int i = 0; i < procInfos.size(); i++) {
        if (procInfos.get(i).processName.equals("com.android.music")) {
            Toast.makeText(null, "music is running", Toast.LENGTH_LONG).show();
        }
    }
} 
Run Code Online (Sandbox Code Playgroud)