AlarmManagerを使って実装し、6時間ほど様子を見てみたのですが、一応うまく動いていたのでご報告します。

// サービスを開始するとき
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC, triggerAtTime, interval, service);
startService(intent);

// サービスを止めるとき
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.cancel(service);
stopService(intent);

サービスがどれくらい保つのかがよくわからなかったので、15分置きにAlarmでサービスを起動させています。
相談にのってくださってありがとうございます。

>>791
ありがとうございます。まだ全部ではありませんが読ませて頂きました。
startService()からstartForeground()に書きなおしてみようと思います。