0

サービスが実行されているかどうかを示すコードを見つけました。しかし、コンパイルエラーが発生しているので、理由はわかりません。私のサービスクラス名はAudioService(Serviceを拡張するクラス)であり、コードのifステートメント行でコンパイルエラーが発生します。

AudioService.equals(service.service.getClassName())コンパイラからのエラーメッセージは、

タイプobjectから非静的メソッドequals(object)への静的参照を作成できません

サービスにバインドされているアクティビティ内のメソッドを使用しています。メソッドとonPausebindService()を呼び出します。何らかの方法を使用してToastメッセージを作成し、サービスが実際に実行されていることを示したいだけです。onResumeunbindService()

私は何を間違っているのですか、そしてこのコードを機能させる方法は?

private boolean isServiceRunning() {
    ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if (AudioService.equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}
4

2 に答える 2

0

これを試して

 public boolean isMyServiceRunning(Context context) {
    ActivityManager manager = (ActivityManager) context
            .getSystemService(Context.ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager
            .getRunningServices(Integer.MAX_VALUE)) {
        if ("com.application.MyService"
                .equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}
于 2012-12-11T12:04:05.670 に答える
0

これを使ってAudioService.class.getName()

 private boolean isServiceRunning() {
  ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
  for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
    if (AudioService.class.getName().equals(service.service.getClassName())) {
      return true;
    }
  }
  return false;
}
于 2012-12-11T12:06:03.670 に答える