Cómo reiniciar el servicio en android para llamar al servicio de nuevo

Tengo un servicio en mi aplicación de Android que se ejecuta siempre. Ahora tengo una configuración de mi servidor a través de GCM y actualizar estos ajustes a mi servicio. Puse mis ajustes en el servicio del ofcreate. Así que necesito reiniciar mi servicio para obtener la configuración más reciente. ¿Cómo reiniciar mi servicio?

Llame a estos dos métodos inmediatamente después de cada uno de ellos, lo que hará que el Service deje de iniciar. No conozco ningún método que lo "reinicie". Así es como lo he implementado en mi aplicación.

 stopService(new Intent(this, YourService.class)); startService(new Intent(this, YourService.class)); 

La mejor solución es usar onDestroy ().

Cuando necesite reiniciar el servicio simplemente llame

 RESTARTSERVICE = true; stopService(new Intent(this, CLASS_OF_SERVICE.class)); 

y

 public void onDestroy() { if (RESTARTSERVICE) { startService(new Intent(this, CLASS_OF_SERVICE.class)); } } 

¿Por qué no mover las cosas de configuración de onCreate a un método separado. A continuación, puede llamar a este método desde onCreate y también lo llamará cuando necesite cambiar la configuración. Entonces no sería necesario reiniciar el servicio.

Utilice un método onTaskRemoved (Intent rootIntent) dentro del servicio, por lo que el servicio se reinicia de nuevo

 @Override public void onTaskRemoved(Intent rootIntent) { System.out.println("service in onTaskRemoved"); long ct = System.currentTimeMillis(); //get current time Intent restartService = new Intent(getApplicationContext(), PushService.class); PendingIntent restartServicePI = PendingIntent.getService( getApplicationContext(), 0, restartService, 0); AlarmManager mgr = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE); mgr.setRepeating(AlarmManager.RTC_WAKEUP, ct, 1 * 1000, restartServicePI); } 

Sólo llamar de nuevo startService() volverá a iniciar el servicio si ya está en ejecución, lo que significa que el servicio se reiniciará.

  • Servicio enlazado a BroadcastReceiver
  • ¿Cómo encontrar las aplicaciones en ejecución en programación en android?
  • ¿Por qué otro servicio encima de IMarketBillingService?
  • Cómo activar Internet continuamente en modo doze Marshmallow and Nougat
  • ¿Necesito un servicio en mi aplicación Android?
  • ¿Cómo ejecutar un servicio de 9 AM a 4 PM todos los días?
  • Análisis BLE de Android en el servicio de fondo
  • Puede AlarmManager (alarm.setRepeating) trabajo en caso de reinicio del teléfono - Android
  • El servicio Android se bloquea después de que la aplicación se borre de la lista de aplicaciones recientes
  • Cómo supervisar el cambio de estado de SIM
  • Context.getApplicationContext () devuelve null en un Service
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.