¡Incorrecto! extienda la clase Application
(IE haga su propio), luego en el método onCreate()
haga esto.
//Service is below
Intent serviceIntent = new Intent(getApplicationContext(), PlaylistUpdaterService.class);
startService(serviceIntent);
Y elimine ese intento de filtro de su declaración en el archivo de manifiesto. Dejarlo como
<service android:name=".PlaylistUpdaterService">
El filtro intención siguiente tiene que estar en su actividad de casa sólo
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
La razón de hacer esto es porque la clase Application
se pone en marcha tan pronto como la aplicación es, y actúa como una especie de clase global que maneja el framework android.
En realidad, si desea que el servicio se ejecute cada vez que vuelva a la pantalla de inicio, debe comenzar el servicio en sus clases de origen onResume()
. Al ponerlo en las aplicaciones onCreate()
, solo se iniciará el servicio si el usuario se está iniciando por primera vez o después de que el proceso se haya ejecutado. O puede ponerlo en las clases de su casa onCreate()
pero eso ni siquiera está garantizado para ejecutarse todo el tiempo.
Este método bloquea la interfaz de usuario cuando se está ejecutando la actividad, pero dado que está configurada como translúcida, no se puede hacer nada. Hay una manera de evitar este bloqueo de interfaz –
@ Noble6: actualicé mi respuesta para que quede más claro. Gracias por los valiosos comentarios. – Zelimir
No es necesario utilizar una actividad, esto solo ralentizará el tiempo de inicio de sesión percibido de la aplicación debido a la sobrecarga de iniciar y detener una actividad. El enfoque a continuación de anular una aplicación es mejor.Sin embargo, si realmente quisiera comenzar con la actividad, sería mejor tener una actividad base que inicie el servicio como comportamiento predeterminado si el servicio aún no se ha iniciado y luego hacer que todas las actividades extiendan esa actividad base. –