Vérifiez si le service fonctionne sur Android?

Je veux vérifier si un service fonctionne. J'ai écrit ce code

public class startServiceOrNo { public static void startServiceIfItsNotRuning(Class<?> class1, Context context) { ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { if (class1.getName().equals(service.service.getClassName())) { Lg.d("servisstart SERVICE ALREADY START" + class1.getName()); return; } } Lg.d("servisstart SSERVICE NEW SERVIS " + class1.getName()); context.startService(new Intent(context, class1)); } 

Et utilisez-le startServiceOrNo.startServiceIfItsNotRuning (OfflineChopsMonitor.class, ceci)

  • RecyclerView scrollToPosition pas déclencher scrollListener
  • Test de l'application Android utilisant Android Studio
  • Obtenez par programme des couleurs de thème
  • Comment remplacer / changer le bouton image par programme sur Android
  • Partagez-vous un texte avec facebook messenger?
  • Analyse du fichier XML local à l'aide de Sax dans Android
  • Si je vérifie le service d'une classe, il travaille, mais si je vérifie le même service de classe différente, sa vérification ne fonctionne pas

  • Lien profond partage les liens vers Google+, mais le lien ne fait rien
  • Existe-t-il un moyen de vérifier si l'appareil Android prend en charge openGL ES 2.0?
  • Collapsing Toolbar and Fragment
  • Demandes de service Web sécurisé
  • Problèmes de tamponnement avec android.media.MediaPlayer
  • Eclipse ne crée pas d'activité principale et de mise en page
  • 3 Solutions collect form web for “Vérifiez si le service fonctionne sur Android?”

    1.) En classe d'activité:

     private boolean isMyServiceRunning(Class<?> serviceClass) { ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { if (serviceClass.getName().equals(service.service.getClassName())) { return true; } } return false; } 

    2.) Dans la classe hors activité (BroadcastReceiver):

     private boolean isMyServiceRunning(Class<?> serviceClass,Context context) { ActivityManager manager = (ActivityManager)context. getSystemService(Context.ACTIVITY_SERVICE); for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { if (serviceClass.getName().equals(service.service.getClassName())) { Log.i("Service already","running"); return true; } } Log.i("Service not","running"); return false; } 

    Pourquoi ne pas laisser le Service lui-même comprendre cela?

     public class MyService extends Service { private boolean mRunning; @Override public void onCreate() { super.onCreate(); mRunning = false; } @Override public int onStartCommand(Intent intent, int flags, int startId) { if (!mRunning) { mRunning = true; // do something } return super.onStartCommand(intent, flags, startId); } } 

    J'utilise le suivi à partir d'une activité:

     private boolean isMyServiceRunning(Class<?> serviceClass) { ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { if (serviceClass.getName().equals(service.service.getClassName())) { return true; } } return false; } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.