2017-09-09 16 views
1

Ich versuche, einen Kippschalter zu machen, dass Sie meinen Dienst ein- und ausschalten können. Ich muss wissen, ob der Dienst ausgeführt wird, um den Anfangszustand des Kippschalters zu bestimmen.Saubere Art und Weise zu prüfen, ob der Dienst läuft

Ich weiß, dass ich laufende Dienste mit getRunningServices auflisten kann() und dann Klassennamen mit meinem Service vergleichen, aber getRunningServices() als von Android O (API 26) veraltet.

Obwohl android documantation sagt, dass getRunningServices() Anrufer eigene Dienste für zurückkehren wird "Rückwärtskompatibilität". Ich würde eine sauberere Lösung bevorzugen, die nicht davon abhängt, veraltete Funktionen oder "Abwärtskompatibilität".

Antwort

0
private boolean isServiceRunning() { 
    ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)){ 
     if("com.example.MyNeatoIntentService".equals(service.service.getClassName())) { 
      return true; 
     } 
    } 
     return false; 
} 

https://gist.github.com/kevinmcmahon/2988931

Verwandte Themen