5 votes

ActivityManager#getRunningServices retourne un service qui a été arrêté manuellement.

activityManager.getRunningServices(Integer.MAX_VALUE);

Cette méthode renvoie une liste qui inclut les services qui ont été arrêtés manuellement.

Paramètres > Applications > Services en cours d'exécution

3voto

Padma Kumar Points 10698

Toutes les approches utilisant les événements onDestroy ou onSometing, les Binders ou les variables statiques ne fonctionneront pas de manière fiable car, en tant que développeur, vous ne savez jamais quand Android décide de tuer votre processus ou lequel des callbacks mentionnés est appelé ou non. Veuillez noter la colonne "killable" dans le tableau des événements du cycle de vie dans la documentation Android.

//utiliser ce code pour vérifier que votre service est en cours d'exécution ou non

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X