Да, используйте AlarmManager для запуска службы каждые 10 минут, например, с setRepeating, как показано ниже.Избавьтесь от таймера в сервисе и просто дайте сервису выполнить задачу в oncreate или onCommand, начиная с завершения.
int SECS = 1000;
int MINS = 60 * SECS;
Calendar cal = Calendar.getInstance();
Intent in = new Intent(context, YourService.class);
PendingIntent pi = PendingIntent.getService(context, 0, in, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarms = (AlarmManager)context.getSystemService(
Context.ALARM_SERVICE);
alarms.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
10 * MINS, pi);
Вы можете создать действие, содержащее этот код, в обработчике onclick с помощью кнопки, чтобы запустить сервис.Если вы хотите запустить во время загрузки, вам нужно поместить это в широковещательный приемник, который получает уведомление, когда устройство работает, но это уже отдельная тема.
Служба причины и таймер не работают, когда устройствоспит, потому что процессор выключен, а в вашем коде нет блокировки пробуждения.AlarmManager слегка разбудит процессор, чтобы запустить ваш сервис.