Vérifiez si le service fonctionne sur Android?

l Vouloir vérifier si le 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,this/

Si je consulte les services d'une classe de votre travail, mais si je vérifie le même service, de différentes classes, son inscription ne fonctionne pas
Invité:

Alice

Confirmation de:

1. / Dans la 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 d'inactivité /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;
}

Blanche

Confirmation de:

Pourquoi ne vous assurez-vous pas le service de la comprendre?


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/;
}
}

Blanche

Confirmation de:

J'utilise les éléments suivants de l'intérieur de l'action:


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;
}

Hannah

Confirmation de:

Vérifiez si le service fonctionne ou non
, Si mon cas:
OpenVPNService.class

- Ceci est ma classe de services.


if /isMyServiceRunning/OpenVPNService.class// {
success_txt.setVisibility/View.VISIBLE/;
} else {
success_txt.setVisibility/View.GONE/;
}





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

Hannah

Confirmation de:

Vous pouvez utiliser cette méthode dans Kotlin


fun Activity.isServiceRunning/serviceClassName: String/: Boolean {
val manager = getSystemService/ACTIVITY_SERVICE/ as ActivityManager
return manager.getRunningServices/Integer.MAX_VALUE/.any { it.service.className == serviceClassName }
}

Pour répondre aux questions, connectez-vous ou registre