El servicio de una aplicación se detiene cuando el teléfono no se está cargando

Mi actividad inicia un servicio llamandostartservice(). Para simplificar mi problema, digamos que el servicio será un contador y que el contador aumentará cada 10 segundos.

Timer t_counter;
int counter = 0; 

@Override   
public int onStartCommand(Intent intent, int flags, int startId) {

    t_counter = new Timer();
    t_counter.schedule(new TimerTask() { 
        @Override
        public void run() {
            counter++;
            Log.d("counter: ",Integer.toString(counter));
        }}, 0, 10000);

    return Service.START_STICKY;
}   

Cuando el teléfono se está cargando, (o en modo de depuración, ya que puedo ver elLogcat) El servicio funciona como se espera. En alrededor de cada 10 s.Logcat muestra la información de depuración, siempre que la aplicación esté en segundo plano o no. Pero cuando desconecto el teléfono, el servicio deja de funcionar al cabo de un rato. Evento cuando la aplicación (Actividad que inició el servicio) está activa. Tenga en cuenta que el servicio no se destruyó, simplemente lo puso en espera, o algo así.

Porque cuando vuelvo a enchufar el móvil, el temporizador continúa y el valor del contador aumenta a partir del valor en el que acabo de desconectar el teléfono. Entonces, si el servicio ha sido destruido, el valor habría sido cero nuevamente. (También depuro el ciclo de vida del servicio, y no puedo veronStartCOmmand(), onDestroy() habría sido llamado)

He buscado soluciones para ello, pero creo que no he encontrado la respuesta correcta para este comportamiento. Sé que debería usarAlarmManager en lugar de temporizador. O también funcionaría si pongo el servicio.primer plano porstartForeground(), o tal vez separadoproceso resolvería este problema Pero me gustaría saber por qué mi solución funciona con la carga. Además, ¿dónde puedo encontrar información sobre este estado "inactivo" de un servicio? (No ejecutando cronogramas, pero no destruido) ¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta