cómo comprobar si el servicio se está ejecutando o no

Quiero mostrar el estado del servicio, si está funcionando o parado. Estoy utilizando el siguiente código pero muestra "detenido" antes de iniciar el servicio. cuando se inicia el servicio se muestra "corriendo". y cuando se detiene de nuevo muestra "corriendo" solamente. ¿Estoy cometiendo algún error al establecer el estado de la preferencia compartida? En mainActivity

onCreate() { checkServiceStatus() ; } private void checkServiceStatus() { Toast.makeText(getApplicationContext(),"in enableControls", Toast.LENGTH_LONG).show(); boolean isServiceRunning = AppSettings.getServiceRunning(this); if (isServiceRunning) { Toast.makeText(getApplicationContext(),"service running", Toast.LENGTH_LONG).show(); } else { Toast.makeText(getApplicationContext(),"service stopped", Toast.LENGTH_LONG).show(); } } public class AppSettings { public static final String SERVICE_STATE = "isServiceRunning"; public static boolean getServiceRunning(Context context){ SharedPreferences pref = context.getSharedPreferences(GPSLOGGER_PREF_NAME, 0); return pref.getBoolean(SERVICE_STATE, false); } public static void setServiceRunning(Context context, boolean isRunning){ SharedPreferences pref = context.getSharedPreferences(GPSLOGGER_PREF_NAME, 0); SharedPreferences.Editor editor = pref.edit(); editor.putBoolean(SERVICE_STATE, isRunning); editor.commit(); } 

3 Solutions collect form web for “cómo comprobar si el servicio se está ejecutando o no”

 public class Receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { if (YourService.class.getName().equals(service.service.getClassName())) { //your service is running } } //your service is not running } } 
  ActivityManager manager = (ActivityManager)context. getSystemService(Context.ACTIVITY_SERVICE);//use context received in broadcastreceiver for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { if (MyService.class.getName().equals(service.service.getClassName())) { //running } else{ //not running } } 
  public static boolean CheckServiceConnectivity(Context mContext) { ConnectivityManager connec = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED || connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) return true; return false; } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.