¿Por qué no Service.onStop método?

He leído mucho sobre el servicio de Android. Según entiendo, el ciclo de vida es:

void onCreate() void onStart(Intent intent) ... void onDestroy() 

Http://www.linuxtopia.org/online_books/android/devguide/guide/topics/fundamentals.html

Pero no hay un método onStop. Preguntas:

  • ¿Por qué no hay un método de detención?
  • ¿Qué sucede cuando se realiza una solicitud stopService en mi Servicio? (Desde fuera, tal vez por Android). ¿Puedo detectar este evento?
  • Me gustaría hacer cumplir (o al menos verificar) que mi servicio es un singleton dentro de un proceso. ¿Cómo puedo hacer esto (o Android hace cumplir esto detrás de las escenas)?

Para el contexto, tengo algunos recursos que me gustaría asignar y liberar mientras el servicio se está ejecutando (en un "inicio"), y otro conjunto de recursos que me gustaría asignar y liberar mientras el servicio es un estado "creado" .

Según entiendo, el ciclo de vida es:

onStart() ha quedado obsoleto durante algunos años. onStartCommand() es el método del ciclo de vida actual.

¿Por qué no hay un método de detención?

Porque no hay necesidad de uno.

¿Qué sucede cuando se realiza una solicitud stopService en mi Servicio?

Usted será llamado con onDestroy() .

¿Puedo detectar este evento?

Puede sobrescribir onDestroy() .

Me gustaría hacer cumplir (o al menos verificar) que mi servicio es un singleton dentro de un proceso. ¿Cómo puedo hacer esto (o Android hace cumplir esto detrás de las escenas)?

Los servicios son singletons naturales. Habrá 0 o 1 instancia de su servicio en un momento dado.

Para el contexto, tengo algunos recursos que me gustaría asignar y liberar mientras el servicio se está ejecutando (en un "inicio"), y otro conjunto de recursos que me gustaría asignar y liberar mientras el servicio es un estado "creado" .

El estado "creado" se utiliza tanto con el patrón de comandos ( startService() como onStartCommand() ) y el patrón de enlace ( bindService() y onBind() ). Por lo tanto, si llama a startService() , su servicio será puramente en el estado "creado" para esperanzadamente menos de un milisegundo.

  • ¿Necesito un servicio en mi aplicación Android?
  • Aplicación de Android como servicio sin actividad
  • Vibrar en la notificación push
  • ¿Cómo puedo detener el servicio de otra aplicación en Android?
  • ¿Cómo iniciar el servicio con Alarm Manager en Android?
  • El servicio exportado no requiere permiso: ¿qué significa?
  • Práctica recomendada: servicio vinculante a una actividad
  • Lanzar el servicio desde el inicio de la aplicación, sin actividad
  • Obtención de I / art: Explicit concurrent mark sweep GC liberado
  • Android: startActivityForResult no llamando aActivityResult
  • FirebaseApp con nombre no existe obtener error
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.