Servicios de Android: consideraciones sobre el ciclo de vida
Estoy haciendo una aplicación para Android que tendrá dos servicios que seguirá enviando datos sobre el uso del teléfono por el usuario cada 24 horas.
El usuario debe ejecutar la aplicación, alternar los botones para habilitar el registro del uso del teléfono y luego el usuario debe ser capaz de hacer una vida normal con su teléfono, hasta que vuelva a iniciar la aplicación y deshabilita el botón de alternar para detener el Registro de la información.
- Ciclo de vida de la clase de aplicación mientras se ejecuta el servicio
- Parámetro startId de servicio de Android
- Ejecutar código justo después de que un fragmento se vuelve visible por primera vez
- Ciclo de vida de Android: rellena datos en actividad en onStart () o onResume ()?
- Android: ¿En qué circunstancias podría aparecer un diálogo que cause onPause ()?
- ¿Qué consideraciones debo tomar sobre el ciclo de vida de los servicios?
- ¿Qué pasa con la interacción del usuario con el teléfono mientras los servicios deben enviar los datos?
Toda la información es muy apreciada, ya que mi mente está recibiendo un poco abrumado con todo esto!
Muchas gracias de antemano a todos!
- Android Fragment onCreateView después de onDestroy no se vuelve a llamar
- ¿Por qué podemos llamar a getActivity () en onCreateView que se ejecuta antes onActivityCreated?
- ¿Los fragmentos con setRetainInstance (true) sobreviven al cierre del proceso?
- SQLite o SharedPreferences para el almacenamiento de datos persistentes?
- Reiniciar el fragmento dentro de la actividad
- ¿Por qué querría alguna vez `setRetainInstance (false)`? - O - La forma correcta de manejar la rotación del dispositivo
El servicio se puede cortar en cualquier momento a través del menú de configuración. También puede ser asesinado en cualquier momento por Android si decide que necesita los recursos para la actividad en ejecución. onDestroy()
se llamará sin importar lo que utilizar para almacenar lo que sea necesario.
El servicio se ejecuta en segundo plano pero a través del subproceso de interfaz de usuario principal. Por lo tanto, es posible bloquear el funcionamiento del teléfono a través de un servicio. Parece que el teléfono está bloqueado cuando es realmente un servicio tratando de hacer algo. Cualquier procedimiento de bloqueo se debe utilizar en un subproceso tal como cronómetro Java, subproceso Java o AsyncTask.
Sólo puede haber una versión en ejecución del servicio en un momento dado. Sin embargo, llamar a startService(myService)
si "myService" ya está en ejecución esencialmente anulará el servicio actual de ejecución y onStartCommand()
será llamado de nuevo. Sin embargo, se necesita una llamada a stopService(myService)
para detenerla no importa cuántas veces se llamó startService(myService)
.
stopService(myService)
no detendrá un servicio si el servicio está vinculado a algo. Esperará hasta que todos los enlaces se eliminen antes de que el servicio se detenga.